We have SIP trunks configured between Avaya IP Office and Asterisk. The Asterisk version is 1.6.2.22. Our SIP trunk (at Asterisk end) receives the call from Avaya. Then we play our IVR (a FastAGI application) and afterwards we need to transfer to an agent/softphone on Avaya IP Office, so we use the Transfer function. But this transfer is not working.
I tested it with two Asterisk Servers (connected through SIP trunks), a call initiated on the first Asterisk and received it through the SIP trunk on the second Asterisk, then after playing the IVR, transferred it back to a SIP extension on the first Asterisk server. Basically, the same thing as above but with Avaya replaced as Asterisk. This is working. But with Avaya it doesn’t work.
These are my configuration files (sip.conf, extension.conf)
sip.conf
[avaya]
host=192.168.20.1 ; pbx ip
type=peer
nat=auto
context=access
username= ; sip trunk user name
secret= ; sip trunk password
insecure=invite
allow=all
extensions.conf
[code][access]
exten => 300,1,Answer()
same => n,Set(CallId=${SIPCALLID})
same => n,AGI(agi://192.168.1.41/testtreatment,inbound)
exten => 222,1,Dial(SIP/avaya/115)[/code]
These are the debug logs from both ends (Asterisk and Avaya):
extensions.conf doesn’t match problem statement: no Transfer call.
Avaya trace doesn’t match Asterisk trace. Former does not have all 7c6dfd96a7cf957d0aea34c2a792f5b6.
Transferring to avaya/252@xxx.xxx.xxx.xxx looks wrong. The address in Transfer needs to be the SIP URI that will be used by the Avaya, preumably 252@xxx.xxx.xxx.xxx
We are trying to obtain the logs. In the meanwhile, I’m posting here the logs for SIP transfer (both blind and supervised) between two Avaya IP Offices.
Afterwards, we carried out the same scenario as previous (instead replaced Asterisk with another Avaya IP office) and the testing was successful. Both supervised and unsupervised transfer worked properly via SIP REFER.
The IPs for the two Avaya IP Office are 172.16.0.99 and 172.19.11.11.
A little clarification needed, if I just transfer it to “6000”, then wouldn’t Asterisk assume that the 6000 is on Asterisk? The 6000 extension is on Avaya, not Asterisk. It is me who is transferring to “avaya/6000”.
What I do in the FastAGI application is use Exec to do Transfer(SIP/avaya/6000)
SIP/avaya is the SIP user (with it’s host=.)
When I did the same scenario with two Asterisk servers (no Avaya), then I do same Transfer(SIP/asteriskA/6000), and it works properly. Which is why I did the same with Avaya i.e. Transfer(SIP/avaya/6000).
[b]NOTE: Sorry, I have written Dial() in the original post. But we are using the Transfer() application and we use it like Transfer(SIP/avaya/6000)
The parameters of Transfer are passed unmodified,with the exception that a missing domain name will be filled in with the local domain name. Generally you would want to specify the complete user@domain part of the SIP URI, as expected by the Avaya. sip.conf is completely bypassed.
Line 882. Plus the Avaya is sending the wrong status code.
Please note that I find use of pastebin sites annoying. It is much better to trim to something that will fit within a code section.
The Avaya is logging a very clear explanation of why it is rejecting the REFER although it is then sending a status code which implies a mismatch on call ID and tags, one which does not actually exist.