Asterisk -> Cisco g729 voice problem


#1

Hi guys,
For a couple of weeks I’ve been fighting this problem and finally hit the dead end. I trashed google for every piece of information, but nothing usefull came out…

Here is my problem.
I installed Asterisk 1.2.7.1-BRIstuffed-0.3.0-PRE-1p and asterisk-addons-1.2.3 for the ooh323 channel. Also i’ve installed the codec_g729-gcc-pentium4.so codec to enable the pass trough function of g729 codec (The only codec this cisco gateway supports).
The problem is that I cannot get any voice transmitted. Asterisk is not behind NAT. It successfully rings the oposite side, but when it picks up the phone the channel is disconnected.

Here are my conf files:

---------- sip.conf ---------------
[general]

context=SIP-phones
port=5060
bindaddr=0.0.0.0
srvlookup=no
disallow=all
allow=g729
allow=ulaw
allow=alaw
allow=gsm
pedantic=no

[201]
type = friend
host = dynamic
dtmfmode = rfc2833
context = SIP-phones
callerid = “201” <201>
username = 201
secret = xxxx

[202]
type = friend
host = dynamic
dtmfmode = rfc2833
context = SIP-phones
callerid = “202” <202>
username = 202
secret = xxxx

---------- extensions.conf ----------
[SIP-phones]
exten => _0XX.,1,Dial(OOH323/${EXTEN}/OUT,40,Ttr)
exten => _0XX.,2,Congestion()

-------- ooh323.conf changes -----
[OUT]
type=peer
context=VoIP-H323
ip=xxx.xxx.xxx.xxx ; UPDATE with appropriate ip address
port=1720 ; UPDATE with appropriate port
disallow=all
allow=g729

---------------------- logs -------------------

10:47:42:303 Master Slave Determination received (outgoing, ooh323c_o_1)
10:47:42:303 MasterSlaveDetermination done - Slave(outgoing, ooh323c_o_1)
10:47:42:303 Sent Message - Facility(OOTerminalCapabilitySetReject) (outgoing, ooh323c_o_1)
10:47:42:303 Tunneled Message - TerminalCapabilitySetAck (outgoing, ooh323c_o_1)
10:47:42:303 Sent Message - Facility(OOTerminalCapabilitySetAck) (outgoing, ooh323c_o_1)
10:47:42:303 Tunneled Message - TerminalCapabilitySet (outgoing, ooh323c_o_1)
10:47:42:303 Sent Message - Facility(OOMasterSlaveReject) (outgoing, ooh323c_o_1)
10:47:42:303 Tunneled Message - MasterSlaveDeterminationAck (outgoing, ooh323c_o_1)
10:47:42:304 H.225 Alerting message received (outgoing, ooh323c_o_1)
10:47:42:313 H.225 Facility message Received (outgoing, ooh323c_o_1)
10:47:42:313 Opening logical channels (outgoing, ooh323c_o_1)
10:47:42:313 Looking for matching capabilities. (outgoing, ooh323c_o_1)
10:47:42:313 ERROR:Incompatible audio capabilities - Can not open audio channel (outgoing, ooh323c_o_1)
10:47:42:313 ERROR:Failed to open audio channels. Clearing call.(outgoing, ooh323c_o_1)
10:47:42:313 Sent Message - ReleaseComplete (outgoing, ooh323c_o_1)
10:47:42:317 H.225 Facility message Received (outgoing, ooh323c_o_1)
10:47:42:317 Opening logical channels (outgoing, ooh323c_o_1)
10:47:42:317 Looking for matching capabilities. (outgoing, ooh323c_o_1)
10:47:42:317 ERROR:Incompatible audio capabilities - Can not open audio channel (outgoing, ooh323c_o_1)
10:47:42:317 ERROR:Failed to open audio channels. Clearing call.(outgoing, ooh323c_o_1)
10:47:42:318 H.225 Facility message Received (outgoing, ooh323c_o_1)
10:47:42:318 Created new logical channel entry (outgoing, ooh323c_o_1)
10:47:42:318 Receive channel of type OO_G729ANNEXA started at xxx.xxx.xxx.xxx:12122(outgoing, ooh323c_o_1)
10:47:42:318 Clearing all logical channels. (outgoing, ooh323c_o_1)
10:47:42:318 Clearing all logical channels (outgoing, ooh323c_o_1)
10:47:42:318 Stopped Receive channel 26685 (outgoing, ooh323c_o_1)
10:47:42:318 Sent Message - Facility(OOOpenLogicalChannelReject) (outgoing, ooh323c_o_1)
10:47:42:318 Tunneled Message - OpenLogicalChannelAck(26685) (outgoing,ooh323c_o_1)
10:47:42:326 Warn:RemoteEndpoint closed connection (outgoing, ooh323c_o_1)
10:47:42:326 Cleaning Call (outgoing, ooh323c_o_1)- reason:OO_REASON_LOCAL_CLEARED
10:47:42:326 Closing H.245 connection (outgoing, ooh323c_o_1)
10:47:42:326 Removed call (outgoing, ooh323c_o_1) from list


ERROR:Incompatible audio capabilities - Can not open audio channel ?!?!?!

When using chan_oh323.so channel, I have no problem talking with that gateway using the same g729 codec… but i have problems handling incoming voice traffic from the GnuGK gatekeeper… but that’s a differernce issue…

Is Asterisk’s OH323 channel actually able to handle G729 codec, and is there any solution for this problem…

Thank you very much for all your answers and support.

Best wishes,
Ventsi


#2

Hello,
Try to use oh323 instead of ooh323. For me, ooh323 did not work, instead I connected through oh323, and it worked. Meantime, in oh323 you can configure the h245 Tunneling, Fast Start, and whether to send H245 in setup. I think by altering those settings you can achieve the connection with your Cisco.
By the way, if you installed the G729 library, you can not only use it in Pass_Through mode, but also in Transcoding mode. In Asterisk prompt type
show translations
This will show the transcoding times between the codecs. Also, to make sure your your G729 works correctly, there should be a number on its row. If there is a dash (-) instead of a number, that means your codec is not working.

Cheers.
Hohenzolern


#3

[quote=“hohenzolern”]Hello,
Try to use oh323 instead of ooh323. For me, ooh323 did not work, instead I connected through oh323, and it worked. Meantime, in oh323 you can configure the h245 Tunneling, Fast Start, and whether to send H245 in setup. I think by altering those settings you can achieve the connection with your Cisco.
By the way, if you installed the G729 library, you can not only use it in Pass_Through mode, but also in Transcoding mode. In Asterisk prompt type
show translations
This will show the transcoding times between the codecs. Also, to make sure your your G729 works correctly, there should be a number on its row. If there is a dash (-) instead of a number, that means your codec is not working.

Cheers.
Hohenzolern[/quote]

Thank you very much for your reply Hohenzolern. Indeed I have no problems connection to the Cisco GW using the OH323 channel, but I have problems with the incomming connections from the GnuGK gatekeeper using it…
The OH323 channel establishes outbound connectionts to the Cisco GW and to the GnuGK without anu probelms… but the inbound connection from the GnuGK fail to transmit any voice… In fact… the calling part continue to hear the ring signal even tho the called part has picked up the phone :frowning:… I have no idea what the problem might be… I suppose some signalization fail or something else… I do not use any NATed stations… and I don’t really beleive the problem is in the GnuGK as I have no worries with the ooh323 channel.


#4

Hello,
In Asterisk, try
oh323 debug toggle
to see what actually happens. Try to change the “H245 in setup” and H245Tunneling fields in oh323.conf.
Also a good idea is to try the connection with explicitly only one codec allowed, both on Cisco and on Asterisk. i.e. both use 711 ulaw.
You should manipulate the settings and see which variant works.
FInally you can install Ethereal, and see the logs, it could give you a clue.

Regards,
Hohenzolern


#5

[quote=“hohenzolern”]Hello,
In Asterisk, try
oh323 debug toggle
to see what actually happens. Try to change the “H245 in setup” and H245Tunneling fields in oh323.conf.
Also a good idea is to try the connection with explicitly only one codec allowed, both on Cisco and on Asterisk. i.e. both use 711 ulaw.
You should manipulate the settings and see which variant works.
FInally you can install Ethereal, and see the logs, it could give you a clue.

Regards,
Hohenzolern[/quote]

Man… i’ve been playing with those options for couple of weeks… I tried hundreds of combinations… i even compiled the oh323 channel with the mimas patch of openh323 and pwlib… also tried the latest openh323 and pwlibg… and nothing of what i did helped to get those inbound connections work… The most strange thing is this…
cut from the debug file

0:00.082 GKRegThread:0a0d6ab8 TCP Appending H.225 transport ip$195.68.214.245:1720 using associated transport Transport[remote:1719=ip$xxx.xxx.xxx.xxx if=ip$127.0.0.1:10000]

0:00.083 GKRegThread:0a0d6ab8 Trans Waiting on response to seqnum=62965 for 3.0 seconds
0:00.083 Transactor:a0dc188 Trans Starting listener thread on Transport[remote:1719=ip$xxx.xxx.xxx.xxx if=ip$127.0.0.1:10000]
0:00.083 Transactor:a0dc188 Trans Reading PDU
0:00.100 Transactor:a0dc188 H225RAS Receiving PDU:

0:24.007 Transactor:a0dc188 Trans Using credentials from request: H235AnnexD_Procedure1,CAT,MD5
0:24.007 Transactor:a0dc188 SvcCtrl OnChange Call Credit service control debit 0
0:24.007 Transactor:a0dc188 Trans Reading PDU
0:24.009 GkMonitor:a1a9350 TCP Appending H.225 transport ip$195.68.214.245:1720 using associated transport Transport[remote:1719=ip$xxx.xxx.xxx.xxx if=ip$127.0.0.1:10000]
0:24.009 H225 Answer:a0d6cf8 H323 Bandwidth used: 0
0:24.012 H225 Answer:a0d6cf8 H323 Answering call: AnswerCallDeferredWithMedia
0:24.013 H225 Answer:a0d6cf8 H225 TCP Listen for H245 on yyy.yyy.yyy.yyy:10000
0:24.014 H225 Answer:a0d6cf8 H225 Sending PDU:

Is it normal to see 127.0.0.1:10000 ??


#6

This is totaly insane… I just tried to establish a call from Ekiga (GnomeMeeting) connected to GnuGK and a SIP device connected to the Asterisk … no problems… the connection was just fine…

but why the hell i cannot make that call using Cisco ATA 186 or Microner SP5004… all of them are not behind NAT with real IP addresses from the same subnet… i don’t beleive this is a matter of routing


#7

btw… i have found the problem… on both the Cisco ATA 186 and the Micronet SP5012, the h245 tunneling was turned off… I had to upgrade the micronet’s firmware to get it working… and at the end the voice passed without worries between the gnugk and the asterisk…

hohenzolern… thanks for the replies… !!!