I needed to configure a SIP trunk with Asterisk to a provider using a Huawei soft switch.
It was not painless….
Firstly there was a well known error regarding silence suppression:
In the SIP INVITE asterisk sends: “a=silenceSupp:off – – – – –”
It is too difficult for Huawei’s coders to accomodate this, so it sends back:
“Got SIP response 500 “Server Internal Error” back from XXX.XXX.XXX.XXX”
So the way this can be circumvented is by doing this:
- http://lists.digium.com/pipermail/asterisk-dev/2006-March/019067.html
- http://lists.digium.com/pipermail/asterisk-dev/2006-March/019156.html
- http://bugs.digium.com/view.php?id=6669
So my example use asterisk 10.2.0
Go look at your asterisk source file in chan_sip.c around line 11814
Comment out this section:
/* ast_build_string(&a_audio_next, &a_audio_left, "a=silenceSupp:off - - - - -\r\n"); */
Recompile and install.
Now that has fixed the problem with the silence suppression.
Another error appeared that the Huawei soft switch is quite pedantic with session expiry.
Outgoing calls from asterisk to Huawei will work, but incoming calls will be dropped when answered.
this is due to this sip communication:
This is fixed by adding : “session-timers=refuse” in my sip.conf
sip.conf file that works for me:
[myprovider] type=peer host=XX.XX.6.5 disallow=all allow=g729 allow=alaw insecure=port,invite qualify=yes nat=no</span> context=from-myprovider canreinvite=no t38pt_udptl = yes session-timers=refuse
Time will tel how stable this config is, but it looks promising.
Hope this helps somebody out there.