OOH323 не хочет слать dtmf в h245signal.
Добавлено: 18 фев 2014, 10:24
Столкнулся с новой проблемой в ooh323.
Провайдер (мера+quintum) требует dtmf в h245signal. rfc2833 принимать не хочет.
При установке dtmfmode в h245signal в ooh323.conf, ooh323 упорно шлет dtmf в information q931, вместо user input indicator в h245.
Аналогично и с h245alphanumeric. Насколько смог разобраться в дебаге ooh323 неправильно распознает TCS message прилетающий от терминатора и не видит в нем заявленного h245signal.
ниже привожу выдержки из h323_log.
пробовал разобраться в исходниках ooh323, но экспириенса не хватает (
Можно это как-то поправить своими силами ?
ЗЫ: пробовал включать inband - коряво, работает не стабильно.
TCS полученный от удаленной стороны
Capability которые заявили мы
Разбираем полученный TCS
[/b]
Далее подтвердили TCS, определили мастер-слейв.
И.... шлем information
Провайдер (мера+quintum) требует dtmf в h245signal. rfc2833 принимать не хочет.
При установке dtmfmode в h245signal в ooh323.conf, ooh323 упорно шлет dtmf в information q931, вместо user input indicator в h245.
Аналогично и с h245alphanumeric. Насколько смог разобраться в дебаге ooh323 неправильно распознает TCS message прилетающий от терминатора и не видит в нем заявленного h245signal.
ниже привожу выдержки из h323_log.
пробовал разобраться в исходниках ooh323, но экспириенса не хватает (
Можно это как-то поправить своими силами ?
ЗЫ: пробовал включать inband - коряво, работает не стабильно.
Код: Выделить всё
ippbx2*CLI> core show version
Asterisk 10.12.4 built by root @ ippbx2.tes-com.ru on a x86_64 running Linux on 2014-01-23 14:20:38 UTC
Код: Выделить всё
ippbx2*CLI> ooh323 show config
Objective Open H.323 Channel Driver's Config:
IP:Port: 0.0.0.0:1720
H.225 port range: 12030-12230
FastStart yes
Tunneling yes
CallerId asterisk
MediaWaitForConnect yes
Gatekeeper: No Gatekeeper
H.323 LogFile: /var/log/asterisk/h323_log
Context: default
Capability: (alaw)
DTMF Mode: h245signal
T.38 Mode: faxgw/chan_sip compatible
FAX Detect: No
Call counter: 0
AccountCode: ast_h323
AMA flags: Unknown
Aliases:
ObjSysAsterisk
Код: Выделить всё
09:32:12:933 capabilityTable = {
09:32:12:933 elem[0] = {
09:32:12:933 capabilityTableEntryNumber = {
09:32:12:933 4
09:32:12:933 }
09:32:12:933 capability = {
09:32:12:933 receiveAndTransmitAudioCapability = {
09:32:12:934 g711Alaw64k = {
09:32:12:934 20
09:32:12:934 }
09:32:12:934 }
09:32:12:934 }
09:32:12:934 }
09:32:12:934 elem[1] = {
09:32:12:934 capabilityTableEntryNumber = {
09:32:12:934 7
09:32:12:934 }
09:32:12:934 capability = {
09:32:12:934 receiveAndTransmitDataApplicationCapability = {
09:32:12:934 application = {
09:32:12:934 t38fax = {
09:32:12:934 t38FaxProtocol = {
09:32:12:934 udp = {
09:32:12:934 NULL
09:32:12:935 }
09:32:12:935 }
09:32:12:935 t38FaxProfile = {
09:32:12:935 fillBitRemoval = {
09:32:12:935 FALSE
09:32:12:935 }
09:32:12:935 transcodingJBIG = {
09:32:12:935 FALSE
09:32:12:935 }
09:32:12:935 transcodingMMR = {
09:32:12:935 FALSE
09:32:12:935 }
09:32:12:936 version = {
09:32:12:936 0
09:32:12:936 }
09:32:12:936 t38FaxRateManagement = {
09:32:12:936 localTCF = {
09:32:12:936 NULL
09:32:12:936 }
09:32:12:936 }
09:32:12:936 }
09:32:12:936 }
09:32:12:936 }
09:32:12:936 maxBitRate = {
09:32:12:937 144
09:32:12:937 }
09:32:12:937 }
09:32:12:937 }
09:32:12:937 }
09:32:12:937 elem[2] = {
09:32:12:937 capabilityTableEntryNumber = {
09:32:12:937 8
09:32:12:937 }
09:32:12:937 capability = {
09:32:12:937 receiveAndTransmitUserInputCapability = {
09:32:12:937 dtmf = {
09:32:12:937 NULL
09:32:12:937 }
09:32:12:937 }
09:32:12:937 }
09:32:12:937 }
09:32:12:937 elem[3] = {
09:32:12:938 capabilityTableEntryNumber = {
09:32:12:938 9
09:32:12:938 }
09:32:12:938 capability = {
09:32:12:938 receiveAndTransmitUserInputCapability = {
09:32:12:938 hookflash = {
09:32:12:938 NULL
09:32:12:938 }
09:32:12:938 }
09:32:12:938 }
09:32:12:938 }
09:32:12:938 }
09:32:12:938 capabilityDescriptors = {
09:32:12:938 elem[0] = {
09:32:12:938 capabilityDescriptorNumber = {
09:32:12:938 1
09:32:12:938 }
09:32:12:938 simultaneousCapabilities = {
09:32:12:938 elem[0] = {
09:32:12:938 elem[0] = {
09:32:12:938 4
09:32:12:939 }
09:32:12:939 elem[1] = {
09:32:12:939 7
09:32:12:939 }
09:32:12:939 elem[2] = {
09:32:12:939 8
09:32:12:939 }
09:32:12:939 elem[3] = {
09:32:12:939 9
09:32:12:939 }
09:32:12:939 }
09:32:12:939 }
09:32:12:939 }
09:32:12:939 }
Код: Выделить всё
09:32:12:902 capabilityTable = {
09:32:12:902 elem[0] = {
09:32:12:902 capabilityTableEntryNumber = {
09:32:12:902 1
09:32:12:902 }
09:32:12:902 capability = {
09:32:12:902 receiveAndTransmitDataApplicationCapability = {
09:32:12:902 application = {
09:32:12:902 t38fax = {
09:32:12:902 t38FaxProtocol = {
09:32:12:902 udp = {
09:32:12:902 NULL
09:32:12:902 }
09:32:12:902 }
09:32:12:902 t38FaxProfile = {
09:32:12:903 fillBitRemoval = {
09:32:12:903 FALSE
09:32:12:903 }
09:32:12:903 transcodingJBIG = {
09:32:12:903 FALSE
09:32:12:903 }
09:32:12:903 transcodingMMR = {
09:32:12:903 FALSE
09:32:12:903 }
09:32:12:903 version = {
09:32:12:903 0
09:32:12:903 }
09:32:12:904 t38FaxRateManagement = {
09:32:12:904 transferredTCF = {
09:32:12:904 NULL
09:32:12:904 }
09:32:12:904 }
09:32:12:904 t38FaxUdpOptions = {
09:32:12:904 t38FaxMaxBuffer = {
09:32:12:904 200
09:32:12:904 }
09:32:12:904 t38FaxMaxDatagram = {
09:32:12:904 72
09:32:12:905 }
09:32:12:905 t38FaxUdpEC = {
09:32:12:905 t38UDPRedundancy = {
09:32:12:905 NULL
09:32:12:905 }
09:32:12:905 }
09:32:12:905 }
09:32:12:905 }
09:32:12:905 }
09:32:12:905 }
09:32:12:905 maxBitRate = {
09:32:12:906 144
09:32:12:906 }
09:32:12:906 }
09:32:12:906 }
09:32:12:906 }
09:32:12:906 elem[1] = {
09:32:12:906 capabilityTableEntryNumber = {
09:32:12:906 2
09:32:12:906 }
09:32:12:906 capability = {
09:32:12:906 receiveAudioCapability = {
09:32:12:906 g711Alaw64k = {
09:32:12:906 20
09:32:12:906 }
09:32:12:906 }
09:32:12:906 }
09:32:12:906 }
09:32:12:906 elem[2] = {
09:32:12:906 capabilityTableEntryNumber = {
09:32:12:906 3
09:32:12:906 }
09:32:12:907 capability = {
09:32:12:907 receiveRTPAudioTelephonyEventCapability = {
09:32:12:907 dynamicRTPPayloadType = {
09:32:12:907 101
09:32:12:907 }
09:32:12:907 audioTelephoneEvent = {
09:32:12:907 "0-16"
09:32:12:907 }
09:32:12:907 }
09:32:12:907 }
09:32:12:907 }
09:32:12:907 elem[3] = {
09:32:12:907 capabilityTableEntryNumber = {
09:32:12:907 4
09:32:12:907 }
09:32:12:907 capability = {
09:32:12:907 receiveDataApplicationCapability = {
09:32:12:907 application = {
09:32:12:907 nonStandard = {
09:32:12:908 nonStandardIdentifier = {
09:32:12:908 h221NonStandard = {
09:32:12:908 t35CountryCode = {
09:32:12:908 181
09:32:12:908 }
09:32:12:908 t35Extension = {
09:32:12:908 0
09:32:12:908 }
09:32:12:908 manufacturerCode = {
09:32:12:908 18
09:32:12:908 }
09:32:12:909 }
09:32:12:909 }
09:32:12:909 data = {
09:32:12:909 '52747044746d6652656c6179'H
09:32:12:909 }
09:32:12:909 }
09:32:12:909 }
09:32:12:909 maxBitRate = {
09:32:12:909 0
09:32:12:909 }
09:32:12:909 }
09:32:12:909 }
09:32:12:909 }
09:32:12:909 elem[4] = {
09:32:12:909 capabilityTableEntryNumber = {
09:32:12:909 5
09:32:12:909 }
09:32:12:910 capability = {
09:32:12:910 receiveUserInputCapability = {
09:32:12:910 basicString = {
09:32:12:910 NULL
09:32:12:910 }
09:32:12:910 }
09:32:12:910 }
09:32:12:910 }
09:32:12:910 elem[5] = {
09:32:12:910 capabilityTableEntryNumber = {
09:32:12:910 6
09:32:12:910 }
09:32:12:910 capability = {
09:32:12:910 receiveUserInputCapability = {
09:32:12:910 dtmf = {
09:32:12:910 NULL
09:32:12:910 }
09:32:12:910 }
09:32:12:910 }
09:32:12:910 }
09:32:12:911 }
09:32:12:911 capabilityDescriptors = {
09:32:12:911 elem[0] = {
09:32:12:911 capabilityDescriptorNumber = {
09:32:12:911 1
09:32:12:911 }
09:32:12:911 simultaneousCapabilities = {
09:32:12:911 elem[0] = {
09:32:12:911 elem[0] = {
09:32:12:911 1
09:32:12:911 }
09:32:12:911 elem[1] = {
09:32:12:911 2
09:32:12:911 }
09:32:12:911 }
09:32:12:911 elem[1] = {
09:32:12:911 elem[0] = {
09:32:12:911 3
09:32:12:911 }
09:32:12:912 elem[1] = {
09:32:12:912 4
09:32:12:912 }
09:32:12:912 elem[2] = {
09:32:12:912 5
09:32:12:912 }
09:32:12:912 elem[3] = {
09:32:12:912 6
09:32:12:912 }
09:32:12:912 }
09:32:12:912 }
09:32:12:912 }
09:32:12:912 }
Код: Выделить всё
09:32:12:939 Handling H245 message. (outgoing, ooh323c_o_1)
09:32:12:939 Processing CapabilityTable Entry 0 (outgoing, ooh323c_o_1)
09:32:12:939 checking whether we need to add cap to joint capabilities(outgoing, ooh323c_o_1)
09:32:12:939 Determined Simple audio data type to be of type OO_G711ALAW64K. Searching for matching capability.(outgoing, ooh323c_o_1)
09:32:12:939 Local cap being compared OO_T38. (outgoing, ooh323c_o_1)
09:32:12:939 Local cap being compared OO_G711ALAW64K. (outgoing, ooh323c_o_1)
09:32:12:939 Found matching simple audio capability type OO_G711ALAW64K. Comparing other parameters. (outgoing, ooh323c_o_1)
09:32:12:939 We can transmit Simple capability OO_G711ALAW64K. (outgoing, ooh323c_o_1)
09:32:12:939 Returning copy of matched transmit capability OO_G711ALAW64K.(outgoing, ooh323c_o_1)
09:32:12:939 Adding cap to joint capabilities(outgoing, ooh323c_o_1)
09:32:12:939 Processing CapabilityTable Entry 1 (outgoing, ooh323c_o_1)
09:32:12:939 checking whether we need to add cap to joint capabilities(outgoing, ooh323c_o_1)
09:32:12:939 Local cap being compared OO_T38. (outgoing, ooh323c_o_1)
09:32:12:939 Found matching t38 capability type OO_T38. Comparing other parameters. (outgoing, ooh323c_o_1)
09:32:12:939 We can transmit Simple capability OO_T38. (outgoing, ooh323c_o_1)
09:32:12:939 Returning copy of matched transmit capability OO_T38.(outgoing, ooh323c_o_1)
09:32:12:939 Adding cap to joint capabilities(outgoing, ooh323c_o_1)
Код: Выделить всё
09:32:12:939 Processing CapabilityTable Entry 2 (outgoing, ooh323c_o_1)
09:32:12:939 Unsupported cap type encountered. Ignoring. (outgoing, ooh323c_o_1)
09:32:12:939 checking whether we need to add cap to joint capabilities(outgoing, ooh323c_o_1)
09:32:12:939 Unsupported cap type encountered. Ignoring. (outgoing, ooh323c_o_1)
09:32:12:939 Not adding to joint capabilities. (outgoing, ooh323c_o_1)
Код: Выделить всё
09:32:12:939 Processing CapabilityTable Entry 3 (outgoing, ooh323c_o_1)
09:32:12:939 Unsupported cap type encountered. Ignoring. (outgoing, ooh323c_o_1)
09:32:12:939 checking whether we need to add cap to joint capabilities(outgoing, ooh323c_o_1)
09:32:12:939 Unsupported cap type encountered. Ignoring. (outgoing, ooh323c_o_1)
09:32:12:939 Not adding to joint capabilities. (outgoing, ooh323c_o_1)
09:32:12:939 Built TerminalCapabilitySet Ack (outgoing, ooh323c_o_1)
И.... шлем information
Код: Выделить всё
09:32:16:212 Keypad IE = {
09:32:16:212 2
09:32:16:212 }
09:32:16:212 h323_uu_pdu = {
09:32:16:212 h323_message_body = {
09:32:16:212 information = {
09:32:16:212 protocolIdentifier = {
09:32:16:212 {
09:32:16:212 0 0 8 2250 0 4 }
09:32:16:212 }
09:32:16:212 callIdentifier = {
09:32:16:212 guid = {
09:32:16:212 '6f6f68333233632d1b93ed8b7a3100f4'H
09:32:16:212 }
09:32:16:212 }
09:32:16:212 }
09:32:16:212 }
09:32:16:212 h245Tunneling = {
09:32:16:212 TRUE
09:32:16:212 }
09:32:16:212 }