Unexpected behaviour with AMR, (Arjun Kamath) (Arjun Kamath)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Arjun,

The local SDP fmtp you've set up there is to tell the remote encoder
about our decoder preference (while our decoder itself doesn't really
understand some of those fmtp settings :) So, honestly I cannot see
why there was problem when such AMR fmtp param was not set up.

And actually the IPP wrapper only support SDP fmtp as described by the
doc, e.g: our IPP encoder will only obey "mode-set" & "octet-align"
AMR fmtp signalled by remote (any other fmtp settings will be
ignored), and our IPP decoder basically will just check/strict-to the
"octet-align" setting.

BR,
nanang


On Tue, Jul 24, 2012 at 2:51 PM, Arjun Kamath <junnaonly at gmail.com> wrote:
> Hi,
>
> I think I have solved the problem, but I am not sure if this is even
> allowed.
>
> The documentation says
> 'Negotiation of various AMR optional parameters in SDP is currently not
> supported. The RFC 3267 section 8.1 specifies a list of optional parameters
> for AMR/AMR-WB, however, the parameters supported by the IPP codecs are just
> octet-align and mode-set.'
>
> But the INVITE message SDP contained this line for AMR WB:
> Media Attribute (a): fmtp:96
> mode-set=0,1,2;mode-change-period=2;mode-change-capability=2;mode-change-neighbor=1;max-red=0;octet-align=1
>
> So in my code I have added:
>
> ...
> pjmedia_codec_param param;
> pjmedia_codec_mgr_get_default_param(.., &param);
> ...
> //Set values for AMR-WB
> pjmedia_codec_mgr_get_default_param(codec_mgr, info[0], &param[0]);
>
> param[0].setting.dec_fmtp.param[0].name = pj_str("mode-set");
> param[0].setting.dec_fmtp.param[0].val = pj_str("0,1,2");
> param[0].setting.dec_fmtp.param[1].name = pj_str("mode-change-period");
> param[0].setting.dec_fmtp.param[1].val = pj_str("2");
> param[0].setting.dec_fmtp.param[2].name = pj_str("mode-change-capability");
> param[0].setting.dec_fmtp.param[2].val = pj_str("2");
> param[0].setting.dec_fmtp.param[3].name = pj_str("mode-change-neighbor");
> param[0].setting.dec_fmtp.param[3].val = pj_str("1");
> param[0].setting.dec_fmtp.param[4].name = pj_str("max-red");
> param[0].setting.dec_fmtp.param[4].val = pj_str("0");
> param[0].setting.dec_fmtp.param[5].name = pj_str("octet-align");
> param[0].setting.dec_fmtp.param[5].val = pj_str("1");
> param[0].setting.dec_fmtp.cnt = 6;
>
> pjmedia_codec_mgr_set_default_param(codec_mgr, info[0], &param[0]);
> ...
>
> So has IPP begun to support these other parameters? If yes, then the
> documentation needs updating.
>
> Regards,
> Arjun
>
>
>>
>> I investigated a little further and found an unexpected behaviour with
>> respect to the default payload format of AMR using Intel IPP. The problem
>> as explained in the message below, is that while using AMR, the IMS server
>> sends an immediate BYE.
>>
>> As per the documentation in <
>> http://www.pjsip.org/pjmedia/docs/html/group__PJMED__IPP__CODEC.htm> the
>> default payload type is octet-align. However in my scenario the pjsip
>> client responds to the INVITE message with a 200 OK containing Media
>> attribute as the following, even though the INVITE message had attribute
>> as
>> octet-align=1:
>>
>> a: rtpmap:96 AMR/8000
>> a: fmtp:96 mode-set=0,1,2;octet-align=0
>>
>> Another observation is that, my client manages to send a few AMR packets
>> to
>> the MGW(kindly read the below message) which I expand on wireshark as:
>>
>> Adaptive Multi-Rate
>> Payload decoded as RFC 3267
>> 1111 .... = CMR: No mode request (15)
>> Reserved != 0, wrongly encoded or not octet aligned. Decoding as
>> bandwidth-efficient mode
>>
>> A side question here is about encoding and decoding. I believe encoding
>> happens when the client sends packets and decoding when it receives.
>> Correct me if I am wrong, but if I am correct why is a packet that the
>> client is sending being 'decoded as bandwidth-efficient'
>>
>> Regards,
>> Arjun
>>
>> ----------------------------------------------------------------------
>> >
>> > Message: 1
>> > Date: Thu, 19 Jul 2012 16:43:19 +0300
>> > From: Arjun Kamath <junnaonly@xxxxxxxxx>
>> > To: pjsip at lists.pjsip.org
>> > Subject: IMS sending immediate BYE when Intel IPP AMR codec
>> >         used
>> > Message-ID:
>> >         <
>> > CADzHbEWSgFENhaMVHqXLXu7TPYSCC61_hRyJ2v-ZSw9NaaXZtg at mail.gmail.com>
>> > Content-Type: text/plain; charset="iso-8859-1"
>> >
>> > Hi all,
>> >
>> > I am developing a VoIP client for Windows using VS2008. I have purchased
>> > the Intel IPP package and have added and linked the codecs properly(with
>> > some trouble I might add). When I use 2 instances of the client on my PC
>> > and make calls using AMR its working fine.
>> >
>> > The error scenario is that I receive a call from the IMS server to which
>> > I
>> > am already registered. The media is handled by the MGW(Kindly check the
>> > below message diagram):
>> >
>> >
>> >
>> > IMS-------------------------------------(INVITE)------------------------------->Client
>> >
>> > IMS<-------------------------------(100_Trying)-------------------------------Client
>> >
>> > MGW<-------------------(RTCP-Recvr-Report)----------------------------Client
>> >
>> > IMS<--------------------------------(200_OK)----------------------------------Client
>> > MGW<-------------------(AMR-WB-packet)
>> > ------------------------------Client
>> >
>> > IMS-------------------------------------(ACK)---------------------------------->Client
>> >
>> > IMS-------------------------------------(BYE)---------------------------------->Client(Reason:Q.850;cause=111[Protocol
>> > Error, unspecified])
>> >
>> > IMS<--------------------------------(200_OK)----------------------------------Client
>> > MGW<--------------(RTCP-Sender-Rep-Goodbye) --------------------Client
>> >
>> > The problem I see immediately is that the MGW is not sending me any
>> > packets, which it should and does when I use PCMU/A codec. With PCMA,
>> > the
>> > MGW sends me both RTCP and PCMA RTP packets without any problems. So for
>> > some reason, on using the Intel IPP codecs, the MGW stops liking my
>> > client.
>> > This is my estimate, though something else could be wrong as well.
>> >
>> > I have extensive wireshark and PJSUA logs of both successful and failed
>> > scenarios. So if any of that would help, please tell me. I didn't want
>> > to
>> > write a humungous e-mail on the first go :)
>> >
>> > Regards,
>> > Arjun
>> > -------------- next part --------------
>> > An HTML attachment was scrubbed...
>> > URL: <
>> >
>> > http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20120719/920dd481/attachment-0001.html
>> > >
>> >
>> > ------------------------------
>> >
>> -------------- next part --------------
>> An HTML attachment was scrubbed...
>> URL:
>> <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20120723/b46efafb/attachment-0001.html>
>>
>> -
>
>
>
> _______________________________________________
> Visit our blog: http://blog.pjsip.org
>
> pjsip mailing list
> pjsip at lists.pjsip.org
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>



[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux