How to connect to Huawei devices
From Kolmisoft Wiki
Jump to navigationJump to search
Huawei develops various devices which has nasty bugs in SIP implementation.
Huawei sends patches to Asterisk to cripple Asterisk to support their non-standard SIP implementation but do not fix their own implementations.
One we encountered is then in SIP INVITE message Asterisk sends line:
a=silenceSupp:off - - - - -
Huawei softswitch does not like it and returns error:
Got SIP response 500 "Server Internal Error" back from 80.237.1.70
Also Hangupcause code 38 which means: NETWORK_OUT_OF_ORDER
Related links:
- 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
Provider which uses Huawei insisted we should patch (criple) Asterisk to make to work with their softdwitch. Instead we put middle server between our Asterisk server and their softswitch:
Our main Asterisk <--IAX2--> Patched Asterisk <--SIP--> Huawei softswitch
In /usr/src/asterisk/channels/chan_sip.c we commented lines
if (!p->owner || !ast_internal_timing_enabled(p->owner)) ast_build_string(&a_audio_next, &a_audio_left, "a=silenceSupp:off - - - -\r\n")
as it is described in this patch. Recompiled Asterisk and it started to work.