[Asterisk-video] 3G phone -> PRI -> asterisk :: cannot get h324m_loopback to work.

Leonid Berson leonidberson at gmail.com
Mon Apr 7 10:49:21 CDT 2008


Dear team,

I'm a new user on this forum, and  I'm tring to test video loopback from 3G
phone -> PRI -> asterisk.  I've started with  h324m_loopback()  feature of
app_h324m from sip.fontventa.com  intalled  in Asterisk
SVN-oej-videocaps-r111931M-/trunk ( on Centos 5.1 i386).

I've successfully compiled libh324m.so and all it's prerequisites.
Whenever i make a 3G call I've get connected but did not get any video/audio
back (the mobile phone is freeses on "getting video.."), and after ~10
seconds get disconnected. On my CentOS box i'm using  Sangoma a104d  PRI
card (wanrouter drives).

Need you help :)

Below please find my debug info:

[root at test2 src]# ldd /usr/local/lib/libh324m.so
        linux-gate.so.1 =>  (0x0074f000)
        libldap-2.3.so.0 => /usr/lib/libldap-2.3.so.0 (0x00895000)
        liblber-2.3.so.0 => /usr/lib/liblber-2.3.so.0 (0x00623000)
        libldap_r-2.3.so.0 => /usr/lib/libldap_r-2.3.so.0 (0x005b0000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00faa000)
        libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0x002f1000)
        libssl.so.6 => /lib/libssl.so.6 (0x00110000)
        libcrypto.so.6 => /lib/libcrypto.so.6 (0x00e10000)
        libexpat.so.0 => /lib/libexpat.so.0 (0x00155000)
        libSDL-1.2.so.0 => /usr/lib/libSDL-1.2.so.0 (0x00176000)
        libresolv.so.2 => /lib/libresolv.so.2 (0x0021f000)
        libdl.so.2 => /lib/libdl.so.2 (0x00a79000)
        libpt_linux_x86_r.so.1.12.0 =>
/usr/local/lib/libpt_linux_x86_r.so.1.12.0 (0x0030a000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00631000)
        libm.so.6 => /lib/libm.so.6 (0x00232000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00259000)
        libc.so.6 => /lib/libc.so.6 (0x00750000)
        /lib/ld-linux.so.2 (0x00aab000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x0027d000)
        libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x002ab000)
        libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x008cf000)
        libcom_err.so.2 => /lib/libcom_err.so.2 (0x00265000)
        libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x005f5000)
        libz.so.1 => /usr/lib/libz.so.1 (0x00268000)
        libesd.so.0 => /usr/lib/libesd.so.0 (0x0097f000)
        libaudiofile.so.0 => /usr/lib/libaudiofile.so.0 (0x0071c000)
        libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x002d9000)
        libkeyutils.so.1 => /lib/libkeyutils.so.1 (0x002e2000)
        libasound.so.2 => /lib/libasound.so.2 (0x00989000)
        libselinux.so.1 => /lib/libselinux.so.1 (0x00962000)
        libsepol.so.1 => /lib/libsepol.so.1 (0x00ac6000)

and setup a dialplan in extenstions.conf:

 [from-video]
exten => _.X,1,Answer
exten => _X.,n,h324m_loopback()


In debug i see:
*CLI> < Protocol Discriminator: Q.931 (8)  len=45
< Call Ref: len= 2 (reference 4330/0x10EA) (Originator)
< Message type: SETUP (5)
< [04 03 88 90 a6]
< Bearer Capability (len= 5) [ Ext: 1  Q.931 Std: 0  Info transfer
capability: Unrestricted digital information (8)
<                              Ext: 1  Trans mode/rate: 64kbps, circuit-mode
(16)
<                              Ext: 1  User information layer 1: H.223 and
H.245 (38)
< [18 03 a1 83 81]
< Channel ID (len= 5) [ Ext: 1  IntID: Implicit  PRI  Spare: 0  Preferred
Dchan: 0
<                        ChanSel: Reserved
<                       Ext: 1  Coding: 0  Number Specified  Channel Type: 3
<                       Ext: 1  Channel: 1 ]
< [6c 0c 01 83 30 35 34 36 33 39 34 33 39 30]
< Calling Number (len=14) [ Ext: 0  TON: Unknown Number Type (0)  NPI:
ISDN/Telephony Numbering Plan (E.164/E.163) (1)
<                           Presentation: Presentation allowed of network
provided number (3)  '0546394390' ]
< [70 08 c1 35 36 35 30 32 30 30]
< Called Number (len=10) [ Ext: 1  TON: Subscriber Number (4)  NPI:
ISDN/Telephony Numbering Plan (E.164/E.163) (1)  '5650200' ]
< [7c 03 88 90 a6]
< IE: Low-layer Compatibility (len = 5)
< [a1]
< Sending Complete (len= 1)
-- Making new call for cr 4330
-- Processing Q.931 Call Setup
-- Processing IE 4 (cs0, Bearer Capability)
-- Processing IE 24 (cs0, Channel Identification)
-- Processing IE 108 (cs0, Calling Party Number)
-- Processing IE 112 (cs0, Called Party Number)
-- Processing IE 124 (cs0, Low-layer Compatibility)
-- Processing IE 161 (cs0, Sending Complete)
q931.c:3353 q931_receive: call 4330 on channel 1 enters state 6 (Call
Present)
q931.c:2620 q931_call_proceeding: call 4330 on channel 1 enters state 9
(Incoming Call Proceeding)
> Protocol Discriminator: Q.931 (8)  len=10
> Call Ref: len= 2 (reference 4330/0x10EA) (Terminator)
> Message type: CALL PROCEEDING (2)
> [18 03 a9 83 81]
> Channel ID (len= 5) [ Ext: 1  IntID: Implicit  PRI  Spare: 0  Exclusive
Dchan: 0
>                        ChanSel: Reserved
>                       Ext: 1  Coding: 0  Number Specified  Channel Type: 3
>                       Ext: 1  Channel: 1 ]
    -- Accepting call from '0546394390' to '5650200' on channel 0/1, span 1
    -- Executing [5650200 at from-video:1] Answer("Zap/1-1", "") in new stack
q931.c:2755 q931_connect: call 4330 on channel 1 enters state 8 (Connect
Request)
> Protocol Discriminator: Q.931 (8)  len=10
> Call Ref: len= 2 (reference 4330/0x10EA) (Terminator)
> Message type: CONNECT (7)
> [18 03 a9 83 81]
> Channel ID (len= 5) [ Ext: 1  IntID: Implicit  PRI  Spare: 0  Exclusive
Dchan: 0
>                        ChanSel: Reserved
>                       Ext: 1  Coding: 0  Number Specified  Channel Type: 3
>                       Ext: 1  Channel: 1 ]
    -- Executing [5650200 at from-video:2] h324m_loopback("Zap/1-1", "") in new
stack
< Protocol Discriminator: Q.931 (8)  len=5
< Call Ref: len= 2 (reference 4330/0x10EA) (Originator)
< Message type: CONNECT ACKNOWLEDGE (15)
q931.c:3513 q931_receive: call 4330 on channel 1 enters state 10 (Active)
< Protocol Discriminator: Q.931 (8)  len=9
< Call Ref: len= 2 (reference 4330/0x10EA) (Originator)
< Message type: DISCONNECT (69)
< [08 02 80 90]
< Cause (len= 4) [ Ext: 1  Coding: CCITT (ITU) standard (0)  Spare: 0
Location: User (0)
<                  Ext: 1  Cause: Normal Clearing (16), class = Normal Event
(1) ]
-- Processing IE 8 (cs0, Cause)
q931.c:3620 q931_receive: call 4330 on channel 1 enters state 12 (Disconnect
Indication)





I've made further debuggings and have found that :

1. Frame* H245ChannelsFactory::GetFrame()   in
src/H245ChannelsFactory.cpp:298 returns NULL
thus no frame has been procceded by:
while ((frame=H324MSessionGetFrame(id))!=NULL) in  app_h324m_loopback  in
app_h324m.c:572.

this means that:

chan->remoteChannel is not set in H245ChannelsFactory::OnEstablishIndication
in src/H245ChannelsFactory.cpp.

I think that somehow connected to that - no h245m event has been triggered
on PRI.

Please, let me know if you find anything on this issue.


Thank you in advance.
Leonid
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-video/attachments/20080407/d24b88e0/attachment-0001.htm 


More information about the asterisk-video mailing list