[Asterisk-Dev] Early media in H.323 driver

Chih-Wei Huang cwhuang at citron.com.tw
Tue Mar 29 19:27:15 MST 2005


Warp wrote:
> Hi,
> 
> chan_h323 use only g723.1 without annex A , maybe here your problem?
> Please check ast_h323.cpp (SetCapability) for more information. 
> 

No. The warning message said

Mar 29 17:51:19 WARNING[4315]: chan_h323.c:704 oh323_write: Asked to
transmit frame type 4, while native formats is 1 (read/write = 1/1)

It means the frame to be written is of type 4(ULaw),
while the channel is of type 1(G.723.1).

In fact, the called party(B) sent RTP in G.723.1, but Asterisk
converted it into ULaw and sent to the calling party(A).
As I said, if I ignored the error and let B answer the call,
A and B can talk without problem.
I found Asterisk will call ast_channel_make_compatible
to adjust the read/writeformat of channels of both A and B
so the RTP can be exchanged.
However, I have no way to call ast_channel_make_compatible
on the time the first early media packet arrived.
Because I can't find a way to get channel of B from
channel of A(ast_bridged_channel returns NULL).


Indeed the silence suppression field in the current implementation of
H323_G7231Capability alse causes interoperability problem.
But that's another story...
(in fact the class are just copied from Openh323, so it's not
the fault of the channel driver's author)

-- 
   ~     Chih-Wei Huang (cwhuang at citron.com.tw)
  'v'    CTO, Citron Network Inc. ( http://www.citron.com.tw/ )
 // \\   GnuGK Project : http://www.gnugk.org/    (Developer)
/(   )\  HomePage      : http://www.linux.org.tw/~cwhuang/
 ^`~'^



More information about the asterisk-dev mailing list