[pjsip] question about changing interface in the middle of session

임영빈 ovinee at gmail.com
Wed Aug 19 02:55:33 EDT 2009


Hello.

After many tries I got some progress, but still I have a problem.
I found that "simpleua" uses two ports and two kinds of packets, that is,
172 and 52 bytes.
I succeeded to let 172 bytes-long packets flow in a new interface, but 52
bytes-long packets still flow in the original interface causing udp checksum
error.
(I put tcpdump capture result below)
What is the difference between these packets, and which structures are
related with each packet kind?

(among these in simpleua.c)
 80 static pj_bool_t         g_complete;    /* Quit flag.       */
 81 static pjsip_endpoint       *g_endpt;       /* SIP endpoint.        */
 82 static pj_caching_pool       cp;        /* Global pool factory. */
 83
 84 static pjmedia_endpt        *g_med_endpt;   /* Media endpoint.      */
 85 static pjmedia_transport_info g_med_tpinfo; /* Socket info for media
 */
 86 static pjmedia_transport    *g_med_transport;/* Media stream transport
 */
 87
 88 /* Call variables: */
 89 static pjsip_inv_session    *g_inv;     /* Current invite session.  */
 90 static pjmedia_session      *g_med_session; /* Call's media session.
 */
 91 static pjmedia_snd_port     *g_snd_player;  /* Call's sound player  */
 92 static pjmedia_snd_port     *g_snd_rec;     /* Call's sound recorder.
*/

And why does udp checksum error happen?

15:39:08.273530 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP
(17), length 200) 192.168.15.1.4000 > 192.168.15.2.4000: UDP, length 172
15:39:08.309279 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP
(17), length 200) 192.168.15.2.4000 > 192.168.15.1.4000: UDP, length 172
15:39:13.265480 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP
(17), length 200) 192.168.15.1.4000 > 192.168.15.2.4000: UDP, length 172
15:39:13.333248 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP
(17), length 200) 192.168.15.2.4000 > 192.168.15.1.4000: UDP, length 172

15:41:43.635773 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP
(17), length 80) X.X.X.187.4001 > X.X.X.189.4001: [udp sum ok] UDP, length
52
15:41:47.728184 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP
(17), length 80) X.X.X.189.4001 > X.X.X.187.4001: [bad udp cksum f230!] UDP,
length 52
15:41:48.467653 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP
(17), length 80) X.X.X.187.4001 > X.X.X.189.4001: [udp sum ok] UDP, length
52
15:41:52.624147 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP
(17), length 80) X.X.X.189.4001 > X.X.X.187.4001: [bad udp cksum 47b2!] UDP,
length 52

On Wed, Aug 19, 2009 at 1:35 AM, 임영빈 <ovinee at gmail.com> wrote:

> Hi.
> I'm trying to implement an application that is able to change network
> interface in the middle of a session depending on the network quality of
>  each interface.
> I'm modifying "simpleua" pjsip sample for this. Actually, I'm very new to
> SIP and pjsip.
> I found in some papers that "re-invite" message can be used, and some
> mobility protocols are implemented using SIP.
>
> My question is what and how I should do besides sending reinvite message.
> Just sending reinvite message by pjsip_inv_reinvite,pjsip_inv_send_msg with
> the interface address that I'm trying to use didn't work, even though a  200
> response was received from the receiver.
>
> I guess there are several functions that have to be implememented like
> this.
> 1) After receiving reinvite, the receiver sends the response message.
> 2) After receiving response message, the reinvite sender sends ACK.
> 3) After receiving the ACK for response message, the receiver updates the
> ip address of the reinvite sender
> 4) After receiving the response message, the sender of the reinvite updates
> its address for the session.
> (I'm not sure these are correct)
> According to my test, 1),2) were automatically done without any need for an
> additional implementation.
> I guess 3), 4) should be implemented additionally. How can I do these?
> Or is there any other function that I should implement?
>
> Thank you.
>
> --
> YoungBin Im
>
>


-- 
YoungBin Im
Ph.D. Student
Multimedia & Mobile Communications Lab.
School of Computer Science and Engineering
Seoul National University, Republic of Korea.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20090819/36bbed93/attachment.html>


More information about the pjsip mailing list