[Asterisk-video] 3g calls fails on h324m_loopback() and h324_gw_answer()
Piotr Stankiewicz
piotr.stankiewicz at gmail.com
Thu Jun 25 09:06:21 CDT 2009
Hi guys,
I found solution, but I can't tell exactly what it was.
I installed on clean Debian system asterisk 1.4.19 and newest zaptel,
libpri, and stuff from sip.fontventa.com and it finally worked.
I can't tell you if it was fault of some outdated libraries (system on which
I installed previously was highly used for various development things), or
maybe fault of using dahdi package.
So anyway, it worked, thanks for all helpful info.
Regards,
Void.
2009/6/15 Dharmesh Garg <dharmesh at packet-shaper.com>
> hi, sorry for distracting you,
>
> i wanna multiparty video conferencing support on my asterisk .
> plz suggest the asterisk version and other requirements for it.
>
> Thanks
>
>
> On Mon, Jun 15, 2009 at 1:59 AM, Piotr Stankiewicz <
> piotr.stankiewicz at gmail.com> wrote:
>
>> Hi again,
>> I've tried your way, Emmanuel, combined with checking echo cancellation,
>> gain and ulaw-alaw conversion proposed by Sergio... without any luck - just
>> about 10 to 15 seconds of complete nothing, and then hangup. Any other
>> ideas?
>> Regards,
>> Void.
>>
>>
>> 2009/5/26 Sergio Garcia Murillo <sergio.garcia at fontventa.com>
>>
>>> Hi Emmanuel,
>>>
>>> That could be one of the most comon reasons, others are volume gains,
>>> echo cancellation or ULAW<->ALAW conversions.
>>> Check none of these are activated on your asterisk system.
>>>
>>> BR
>>> Sergio
>>>
>>> Emmanuel BUU escribió:
>>>
>>> MMmm I had that kind of situation when it happed that the H.245 data was
>>> served with reverse bit order. In that case, the call gets connected on
>>> the ISDN side then the h324m stack fails not initiate the video call and
>>> hangs up. It does not seem to depend on the carrier. It rather depends
>>> on the board itself.
>>>
>>> You have to enable h245 logging (I do not remember how) in the h324m
>>> stack to have a better idea
>>>
>>> You may also edit h324m.cpp and comment the following lines
>>>
>>> int H324MSessionRead(void * id,unsigned char *buffer,int len)
>>> {
>>> //TIFFReverseBits(buffer,len);
>>> return ((H324MSession*)id)->Read(buffer,len);
>>> }
>>>
>>> int H324MSessionWrite(void * id,unsigned char *buffer,int len)
>>> {
>>> int ret = ((H324MSession*)id)->Write(buffer,len);
>>> //TIFFReverseBits(buffer,len);
>>> return ret;
>>> }
>>>
>>> Recompile h324m, reinstall the try again (after having restarted your
>>> Asterisk of course).
>>>
>>> Emmanuel BUUhttp://www.ives.fr/
>>>
>>>
>>> Piotr Stankiewicz a écrit :
>>>
>>>
>>> Hi!
>>> I've got problem with making 3g video calls from mobile to my asterisk
>>> gateway. The call is placed, then asterisk freezes for about 10-15
>>> seconds on h324m_loopback() or h324_gw_answer() (no video, no audio),
>>> and then it disconnects with cause 16.
>>> I've found similar topics around the internet and this mailing list,
>>> but no answers. So I post my question - what I am doing wrong? Is it
>>> possible that telco's PRI is causing this problem? Are there any
>>> special requirements which should be meet to get proper 3G gateway?
>>>
>>> My system:
>>> asterisk 1.4.22 witch all necessary libraries and apps from sip.fontventa.com <http://sip.fontventa.com> <http://sip.fontventa.com>
>>> libpri 1.4.10
>>> dahdi 2.1.0.4
>>>
>>> Digium * card TE420
>>>
>>> Mobile phone - HTC Touch Diamond
>>>
>>> extensions which I've tried:
>>> 1)
>>> [from-e1]
>>> exten => _X.,1,Answer(5000)
>>> exten => _X.,n,h324m_loopback()
>>> (I've tried Answer(), and h324m_loopback(av) also)
>>>
>>> 2)
>>> [from-e1]
>>> exten => _X.,1,H324m_gw(loopback at 3gp_videos)
>>>
>>>
>>> [3gp_videos]
>>> exten => loopback,1,h324m_gw_answer()
>>> exten => loopback,n,Video_loopback()
>>> exten => loopback,n,Hangup()
>>>
>>> /var/log/asterisk/full:
>>>
>>>
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: < Protocol Discriminator:
>>> Q.931 (8) len=49
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: < Call Ref: len= 2
>>> (reference 7680/0x1E00) (Originator)
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: < Message type: SETUP (5)
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: < [04 02 88 90]
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: < Bearer Capability (len= 4)
>>> [ Ext: 1 Q.931 Std: 0 Info transfer capability: Unrestricted digital
>>> information (8)
>>> [May 22 14:20:44] VERBOSE[9480] logger.c:
>>> < Ext: 1 Trans mode/rate: 64kbps,
>>> circuit-mode (16)
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: < [18 03 a9 83 9f]
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: < Channel ID (len= 5) [ Ext:
>>> 1 IntID: Implicit PRI Spare: 0 Exclusive Dchan: 0
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: <
>>> ChanSel: As indicated in following octets
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: < Ext:
>>> 1 Coding: 0 Number Specified Channel Type: 3
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: < Ext:
>>> 1 Channel: 31 ]
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: < [6c 0d 11 83 34 38 37 39
>>> 31 37 37 36 30 35 36]
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: < Calling Number (len=15) [
>>> Ext: 0 TON: International Number (1) NPI: ISDN/Telephony Numbering
>>> Plan (E.164/E.163) (1)
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: <
>>> Presentation: Presentation allowed of network provided number (3)
>>> '4879xxxxxxx' ]
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: < [70 0c 81 33 33 31 37 34
>>> 39 30 34 36 30 31]
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: < Called Number (len=14) [
>>> Ext: 1 TON: Unknown Number Type (0) NPI: ISDN/Telephony Numbering
>>> Plan (E.164/E.163) (1) '3317xxxxxxx' ]
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: < [7c 03 88 90 a6]
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: < Low-layer Compatability
>>> (len= 5) [ Ext: 1 Q.931 Std: 0 Info transfer capability:
>>> Unrestricted digital information (8)
>>> [May 22 14:20:44] VERBOSE[9480] logger.c:
>>> < Ext: 1 Trans mode/rate: 64kbps,
>>> circuit-mode (16)
>>> [May 22 14:20:44] VERBOSE[9480] logger.c:
>>> < User information layer 1: H.223/H.245
>>> Multimedia (38)
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: < [a1]
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: < Sending Complete (len= 1)
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: -- Making new call for cr 7680
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: -- Processing Q.931 Call Setup
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: -- Processing IE 4 (cs0,
>>> Bearer Capability)
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: -- Processing IE 24 (cs0,
>>> Channel Identification)
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: -- Processing IE 108 (cs0,
>>> Calling Party Number)
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: -- Processing IE 112 (cs0,
>>> Called Party Number)
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: -- Processing IE 124 (cs0,
>>> Low-layer Compatibility)
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: -- Processing IE 161 (cs0,
>>> Sending Complete)
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: q931.c:3562 q931_receive:
>>> call 7680 on channel 31 enters state 6 (Call Present)
>>> [May 22 14:20:44] DEBUG[9480] chan_dahdi.c: PRI_EVENT_RING: seting
>>> incoming call on channel 31 to law=1
>>> [May 22 14:20:44] DEBUG[9480] chan_dahdi.c: PRI_EVENT_RING: user
>>> information layer 1 of incoming call = -1 (0xffffffff)
>>> [May 22 14:20:44] DEBUG[9480] chan_dahdi.c: PRI_EVENT_RING: treat
>>> incoming call on channel 31 as ULAW(1)
>>> [May 22 14:20:44] DEBUG[9480] chan_dahdi.c: PRI_EVENT_RING: seting
>>> incoming call on channel 31 to law=1
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: q931.c:2827
>>> q931_call_proceeding: call 7680 on channel 31 enters state 9 (Incoming
>>> Call Proceeding)
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: > Protocol Discriminator:
>>> Q.931 (8) len=10
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: > Call Ref: len= 2
>>> (reference 7680/0x1E00) (Terminator)
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: > Message type: CALL
>>> PROCEEDING (2)
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: > [18 03 a9 83 9f]
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: > Channel ID (len= 5) [ Ext:
>>> 1 IntID: Implicit PRI Spare: 0 Exclusive Dchan: 0
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: >
>>> ChanSel: As indicated in following octets
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: > Ext:
>>> 1 Coding: 0 Number Specified Channel Type: 3
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: > Ext:
>>> 1 Channel: 31 ]
>>> [May 22 14:20:44] DEBUG[9480] chan_dahdi.c: PRI_EVENT_RING: zt_new:
>>> law=1,ul1=-1
>>> [May 22 14:20:44] DEBUG[9480] chan_dahdi.c: dahdi_new:
>>> ps.curlaw!=DAHDI_LAW_ALAW, setting deflaw to AST_FORMAT_ULAW
>>> [May 22 14:20:44] DEBUG[9480] chan_dahdi.c: zt_new:
>>> law=DAHDI_LAW_ALAW, setting deflaw to AST_FORMAT_ULAW
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: -- Accepting call from
>>> '4879xxxxxxx' to '3317xxxxxxx' on channel 0/31, span 1
>>> [May 22 14:20:44] DEBUG[9480] chan_dahdi.c: Echo cancellation isn't
>>> required on digital connection
>>> [May 22 14:20:44] DEBUG[9895] pbx.c: Launching 'Answer'
>>> [May 22 14:20:44] VERBOSE[9895] logger.c: -- Executing
>>> [3317xxxxxxxx at from-e1:1] Answer("DAHDI/31-1", "") in new stack
>>> [May 22 14:20:44] DEBUG[9895] devicestate.c: Notification of state
>>> change to be queued on device/channel DAHDI/31
>>> [May 22 14:20:44] DEBUG[9471] devicestate.c: No provider found,
>>> checking channel drivers for DAHDI - 31
>>> [May 22 14:20:44] VERBOSE[9895] logger.c: q931.c:2962 q931_connect:
>>> call 7680 on channel 31 enters state 8 (Connect Request)
>>> [May 22 14:20:44] DEBUG[9471] channel.c: Avoiding initial deadlock for
>>> channel '0x822cbe0'
>>> [May 22 14:20:44] VERBOSE[9895] logger.c: > Protocol Discriminator:
>>> Q.931 (8) len=10
>>> [May 22 14:20:44] VERBOSE[9895] logger.c: > Call Ref: len= 2
>>> (reference 7680/0x1E00) (Terminator)
>>> [May 22 14:20:44] VERBOSE[9895] logger.c: > Message type: CONNECT (7)
>>> [May 22 14:20:44] VERBOSE[9895] logger.c: > [18 03 a9 83 9f]
>>> [May 22 14:20:44] VERBOSE[9895] logger.c: > Channel ID (len= 5) [ Ext:
>>> 1 IntID: Implicit PRI Spare: 0 Exclusive Dchan: 0
>>> [May 22 14:20:44] VERBOSE[9895] logger.c: >
>>> ChanSel: As indicated in following octets
>>> [May 22 14:20:44] VERBOSE[9895] logger.c: > Ext:
>>> 1 Coding: 0 Number Specified Channel Type: 3
>>> [May 22 14:20:44] VERBOSE[9895] logger.c: > Ext:
>>> 1 Channel: 31 ]
>>> [May 22 14:20:44] DEBUG[9895] pbx.c: Launching 'h324m_loopback'
>>> [May 22 14:20:44] VERBOSE[9895] logger.c: -- Executing
>>> [3317xxxxxxx at from-e1:2] h324m_loopback("DAHDI/31-1", "") in new stack
>>> [May 22 14:20:44] DEBUG[9895] app_h324m.c: h324m_loopback
>>> [May 22 14:20:44] DEBUG[9895] app_h324m.c: H245 TerminalCapabilitySet
>>> TransferRequest
>>> [May 22 14:20:44] DEBUG[9895] app_h324m.c: -WriteControlPDU [request]
>>> [May 22 14:20:44] DEBUG[9895] app_h324m.c: Encode PDU [95]
>>> [May 22 14:20:44] DEBUG[9895] app_h324m.c: Sending CMD [0,87]
>>> [May 22 14:20:44] DEBUG[9895] app_h324m.c: H245 Request
>>> MasterSlaveDetermination
>>> [May 22 14:20:44] DEBUG[9895] app_h324m.c: -WriteControlPDU [request]
>>> [May 22 14:20:44] DEBUG[9895] app_h324m.c: Encode PDU [20]
>>> [May 22 14:20:44] DEBUG[9895] app_h324m.c: Sending CMD [1,7]
>>> [May 22 14:20:44] DEBUG[9895] app_h324m.c: Sending CMD [0] - 1 left
>>> [May 22 14:20:44] DEBUG[9471] devicestate.c: Changing state for
>>> DAHDI/31 - state 2 (In use)
>>> [May 22 14:20:44] DEBUG[9497] app_queue.c: Device 'DAHDI/31' changed
>>> to state '2' (In use) but we don't care because they're not a member
>>> of any queue.
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: < Protocol Discriminator:
>>> Q.931 (8) len=5
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: < Call Ref: len= 2
>>> (reference 7680/0x1E00) (Originator)
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: < Message type: CONNECT
>>> ACKNOWLEDGE (15)
>>> [May 22 14:20:44] VERBOSE[9480] logger.c: q931.c:3722 q931_receive:
>>> call 7680 on channel 31 enters state 10 (Active)
>>> [May 22 14:20:58] VERBOSE[9480] logger.c: < Protocol Discriminator:
>>> Q.931 (8) len=9
>>> [May 22 14:20:58] VERBOSE[9480] logger.c: < Call Ref: len= 2
>>> (reference 7680/0x1E00) (Originator)
>>> [May 22 14:20:58] VERBOSE[9480] logger.c: < Message type: DISCONNECT (69)
>>> [May 22 14:20:58] VERBOSE[9480] logger.c: < [08 02 81 90]
>>> [May 22 14:20:58] VERBOSE[9480] logger.c: < Cause (len= 4) [ Ext: 1
>>> Coding: CCITT (ITU) standard (0) Spare: 0 Location: Private network
>>> serving the local user (1)
>>> [May 22 14:20:58] VERBOSE[9480] logger.c: < Ext: 1
>>> Cause: Normal Clearing (16), class = Normal Event (1) ]
>>> [May 22 14:20:58] VERBOSE[9480] logger.c: -- Processing IE 8 (cs0, Cause)
>>> [May 22 14:20:58] VERBOSE[9480] logger.c: q931.c:3837 q931_receive:
>>> call 7680 on channel 31 enters state 12 (Disconnect Indication)
>>> [May 22 14:20:58] VERBOSE[9480] logger.c: -- Channel 0/31, span 1
>>> got hangup request, cause 16
>>> [May 22 14:20:58] DEBUG[9895] app_h324m.c: exit[May 22 14:20:58]
>>> DEBUG[9895] pbx.c: Extension 3317xxxxxxx, priority 2 returned normally
>>> even though call was hung up
>>> [May 22 14:20:58] DEBUG[9895] channel.c: Soft-Hanging up channel
>>> 'DAHDI/31-1'
>>> [May 22 14:20:58] DEBUG[9895] channel.c: Hanging up channel 'DAHDI/31-1'
>>> [May 22 14:20:58] DEBUG[9895] chan_dahdi.c: dahdi_hangup(DAHDI/31-1)
>>> [May 22 14:20:58] DEBUG[9895] chan_dahdi.c: Set option AUDIO MODE,
>>> value: ON(1) on DAHDI/31-1
>>> [May 22 14:20:58] DEBUG[9895] chan_dahdi.c: Hangup: channel: 31 index
>>> = 0, normal = 50, callwait = -1, thirdcall = -1
>>> [May 22 14:20:58] DEBUG[9895] chan_dahdi.c: Not yet hungup... Calling
>>> hangup once with icause, and clearing call
>>> [May 22 14:20:58] VERBOSE[9895] logger.c: NEW_HANGUP DEBUG: Calling
>>> q931_hangup, ourstate Disconnect Indication, peerstate Disconnect Request
>>> [May 22 14:20:58] VERBOSE[9895] logger.c: q931.c:2978 q931_release:
>>> call 7680 on channel 31 enters state 19 (Release Request)
>>> [May 22 14:20:58] VERBOSE[9895] logger.c: > Protocol Discriminator:
>>> Q.931 (8) len=9
>>> [May 22 14:20:58] VERBOSE[9895] logger.c: > Call Ref: len= 2
>>> (reference 7680/0x1E00) (Terminator)
>>> [May 22 14:20:58] VERBOSE[9895] logger.c: > Message type: RELEASE (77)
>>> [May 22 14:20:58] VERBOSE[9895] logger.c: > [08 02 81 90]
>>> [May 22 14:20:58] VERBOSE[9895] logger.c: > Cause (len= 4) [ Ext: 1
>>> Coding: CCITT (ITU) standard (0) Spare: 0 Location: Private network
>>> serving the local user (1)
>>> [May 22 14:20:58] VERBOSE[9895] logger.c: > Ext: 1
>>> Cause: Normal Clearing (16), class = Normal Event (1) ]
>>> [May 22 14:20:58] DEBUG[9895] chan_dahdi.c: disabled echo cancellation
>>> on channel 31
>>> [May 22 14:20:58] DEBUG[9895] chan_dahdi.c: Set option TDD MODE,
>>> value: OFF(0) on DAHDI/31-1
>>> [May 22 14:20:58] DEBUG[9895] chan_dahdi.c: Updated conferencing on
>>> 31, with 0 conference users
>>> [May 22 14:20:58] DEBUG[9895] chan_dahdi.c: Set option AUDIO MODE,
>>> value: OFF(0) on DAHDI/31-1
>>> [May 22 14:20:58] DEBUG[9895] chan_dahdi.c: disabled echo cancellation
>>> on channel 31
>>> [May 22 14:20:58] VERBOSE[9895] logger.c: -- Hungup 'DAHDI/31-1'
>>> [May 22 14:20:58] VERBOSE[9480] logger.c: < Protocol Discriminator:
>>> Q.931 (8) len=5
>>> [May 22 14:20:58] VERBOSE[9480] logger.c: < Call Ref: len= 2
>>> (reference 7680/0x1E00) (Originator)
>>> [May 22 14:20:58] VERBOSE[9480] logger.c: < Message type: RELEASE
>>> COMPLETE (90)
>>> [May 22 14:20:58] VERBOSE[9480] logger.c: q931.c:3777 q931_receive:
>>> call 7680 on channel 31 enters state 0 (Null)
>>> [May 22 14:20:58] VERBOSE[9480] logger.c: NEW_HANGUP DEBUG: Calling
>>> q931_hangup, ourstate Null, peerstate Null
>>> [May 22 14:20:58] VERBOSE[9480] logger.c: NEW_HANGUP DEBUG: Destroying
>>> the call, ourstate Null, peerstate Null
>>> [May 22 14:20:59] DEBUG[9895] devicestate.c: Notification of state
>>> change to be queued on device/channel DAHDI/31
>>> [May 22 14:20:59] DEBUG[9471] devicestate.c: No provider found,
>>> checking channel drivers for DAHDI - 31
>>> [May 22 14:20:59] DEBUG[9471] devicestate.c: Changing state for
>>> DAHDI/31 - state 0 (Unknown)
>>> [May 22 14:20:59] DEBUG[9497] app_queue.c: Device 'DAHDI/31' changed
>>> to state '0' (Unknown) but we don't care because they're not a member
>>> of any queue.
>>>
>>> Incomig audioonly calls are working great, problem exist with
>>> videocalls only.
>>> Thanks for all replies in advance,
>>> Regards,
>>> Void.
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> --Bandwidth and Colocation Provided by http://www.api-digital.com--
>>>
>>> asterisk-video mailing list
>>> To UNSUBSCRIBE or update options visit:
>>> http://lists.digium.com/mailman/listinfo/asterisk-video
>>>
>>> _______________________________________________
>>> --Bandwidth and Colocation Provided by http://www.api-digital.com--
>>>
>>> asterisk-video mailing list
>>> To UNSUBSCRIBE or update options visit:
>>> http://lists.digium.com/mailman/listinfo/asterisk-video
>>>
>>>
>>>
>>> _______________________________________________
>>> --Bandwidth and Colocation Provided by http://www.api-digital.com--
>>>
>>> asterisk-video mailing list
>>> To UNSUBSCRIBE or update options visit:
>>> http://lists.digium.com/mailman/listinfo/asterisk-video
>>>
>>
>>
>> _______________________________________________
>> --Bandwidth and Colocation Provided by http://www.api-digital.com--
>>
>> asterisk-video mailing list
>> To UNSUBSCRIBE or update options visit:
>> http://lists.digium.com/mailman/listinfo/asterisk-video
>>
>
>
> _______________________________________________
> --Bandwidth and Colocation Provided by http://www.api-digital.com--
>
> asterisk-video mailing list
> To UNSUBSCRIBE or update options visit:
> http://lists.digium.com/mailman/listinfo/asterisk-video
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-video/attachments/20090625/9d72f97c/attachment-0001.htm
More information about the asterisk-video
mailing list