in Asterisk

Asterisk and reinvites


I’ve had a VoIP-only setup at home for a while now with two incoming DIDs: one for residential use and one for my community volunteer work. During the business day I usually send calls regarding my community work to my home voicemail, as I don’t want to necessarily eat up my pay-per-use mobile phone minutes. However, some days I expect important calls and want calls to my volunteer number to ring my mobile directly.

With my previous setup under Asterisk, I would take the incoming call stream and simply bring up another channel, bouncing the audio right back to my VoIP provider, Vitelity. This would work well most of the time, but my phone server is connected through my home cable modem and if there was any heavy Internet traffic at home during a call it would affect the quality of my call. Not good.

Fortunately, I recall a better way of doing things: a SIP REINVITE. If phone A rings phone B through Asterisk and Asterisk sees that these two phones are able to talk directly to each other, it sends a SIP REINVITE to each phone. In this way, Asterisk invites the two phones to talk directly.

Now an incoming call that I forward out again connects between Vitelity’s incoming and outgoing servers, skipping the round-trip through my bandwidth-addled home cable modem. As the saying goes, it’s an “A and B conversation and Asterisk Cs it’s way out of it!”