Monday, 26 March 2012

Transferring calls

I am pleased to say that call transfers just work - the logic is simple enough, and the previous nightmares in AASIP were all down to media renegotiation.

Basically, on the AASIP code, we did end to end SDP negotiation. That means that on a call transfer we had to re-negotiate the end to end SDP for the joined calls. This is made worse if the transfer is to a set of ringing phones, etc.

The new code means we do the media relay, so we never re-negotiate the media. All we have to do is change the mapping of what goes where internally - very simple. It also makes generating ring tone or the like in the middle of the transfer just work.

To add to the fun, it appears there are a few ways to transfer a call.
  1. Transfer a ringing call without answering (done using a 3xx response just like a divert)
  2. Answer call and blind transfer it (done using a REFER)
  3. Answer a call, put on hold, call another number, and transfer before answer (seems snom cancel the call and then REFER as above, but we allow REFER with Replaces=)
  4. Answer a call, put on hold, call another, wait for answer, then transfer (done with a REFER with Replaces=)
On top of that, you have rules on who can call what numbers when, and do you allow transfer of an outgoing call? and so on. All good fun.

I am still pondering if you should be able to transfer an outgoing external call to an external number... That may be a setting.


  1. "I am still pondering if you should be able to transfer an outgoing external call to an external number... That may be a setting"

    It can be useful if you need to forward the call to someones mobile, doesn't happen very often but occasionally you'll be talking to someone you called and they'll also want to speak to someone else when you're done

    1. That may be done by a different means - been discussing that today. I'll elaborate on that later :-)

    2. I think it's a must for anyone with multiple sites with and without a VOIP platform - a position I was in for some time in $job-1 - I used the feature many many times on our solution.

      Agreed it should be a setting though as there are some issues with calls not properly being ended etc that could end up with lots of billing!

  2. You could use the transfer system to connect 2 telemarketers which are calling your honeypot lines :)

    Btw how is that still going for you? I'm thinking of doing the same thing but for US numbers. Did you sign up those lines to any online directories? How did those telemarketers find your lines? Simply by wardialing?

    Cheers from Canada

    1. They were not on a directory and in fact on the TPS. We suspect being on the TPS is what caused the calls, but can't easily prove it. Millions of other numbers were not getting the calls.