PJNATH implementation with coturn server

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

 



Hi Ashish,

I think you should familiarize yourself with running plain pjsua client 
before introducing stun/ice/turn.

But if you want to run pjsua and use turn server, you need to start a 
single instance of pjsua with appropriate arguments to set turn 
credentials and a single instance of turn server with matching 
credentials. The pjsua turn options are:

   --use-turn          Enable TURN relay with ICE (default:no)
   --turn-srv          Domain or host name of TURN server ("NAME:PORT" 
format)
   --turn-tcp          Use TCP connection to TURN server (default no)
   --turn-user         TURN username
   --turn-passwd       TURN password

The corresponding pjturn_client options are (copying from code):

541  puts("Usage: pjturn_client TURN-SERVER [OPTIONS]");
542  puts("");
543  puts("where TURN-SERVER is \"host[:port]\"");
544  puts("");
545  puts("and OPTIONS:");
546  puts(" --tcp, -T Use TCP to connect to TURN server");
547  puts(" --realm, -r REALM Set realm of the credential to REALM");
548  puts(" --username, -u UID Set username of the credential to UID");
549  puts(" --password, -p PASSWD Set password of the credential to 
PASSWD");
550  puts(" --fingerprint, -F Use fingerprint for outgoing requests");
551  puts(" --stun-srv, -S NAME Use this STUN srv instead of TURN for 
Binding discovery");
552  puts(" --nameserver, -N IP Activate DNS SRV, use this DNS server");
553  puts(" --help, -h");

Running pjsua with turn will cause all media to be relayed through turn 
relay. If you also specify --use-ice, and the other endpoint supports 
ice,  then pjsua will negotiate with the other endpoint and will 
optionally use turn relay. I wouldn't bother with stun.

Bill



On 11/3/2014 6:52 AM, ashish khowal wrote:
> Hi Victor,
>
> thanks for your response.
>
> PJNATH functionality is what I want to test I am using PJSIP 
> executables after I compiled the PJSIP. Here are the commands I used 
> for different testing
>
> ./pjsua-x86_64-unknown-linux-gnu --use-turn --turn-srv=<IP_Address>
> ./pjsua-x86_64-unknown-linux-gnu --stun-srv=<SERVER_IP_ADDR:PORT>
> ./pjsua-x86_64-unknown-linux-gnu --username=ashish --password=khowal 
> --turn-srv=SERVER IP_ADDR
> ./pjsua-x86_64-unknown-linux-gnu --username=ashish --password=khowal 
> SERVER_IP_ADDR
> ./pjturn-client-x86_64-unknown-linux-gnu  -F IP_ADDR
> ./pjturn-client-x86_64-unknown-linux-gnu IP_ADDR
> ./pjsua-x86_64-unknown-linux-gnu sip:IP_ADDR
> ./pjturn-client-x86_64-unknown-linux-gnu a <SERVER_IP> -u ashish -p  
> khowal -F <SERVER_IP>
>
> I*am not sure I am using the commands correctly. Here is one of the 
> snapshot of the command*s
>
> ashish at ashish:~/Downloads/pjdist/pjproject-2.3/pjsip-apps/bin$ 
> ./pjsua-x86_64-unknown-linux-gnu --use-turn --turn-srv 
> SERVER_IP_ADDR:3478
> 11:15:09.145 os_core_unix.c !pjlib 2.3 for POSIX initialized
> 11:15:09.146 sip_endpoint.c  .Creating endpoint instance...
> 11:15:09.146          pjlib  .select() I/O Queue created (0x1d22290)
> 11:15:09.146 sip_endpoint.c  .Module "mod-msg-print" registered
> 11:15:09.146 sip_transport.  .Transport manager created.
> 11:15:09.146   pjsua_core.c  .PJSUA state changed: NULL --> CREATED
> 11:15:09.146 sip_endpoint.c  .Module "mod-pjsua-log" registered
> 11:15:09.146 sip_endpoint.c  .Module "mod-tsx-layer" registered
> 11:15:09.146 sip_endpoint.c  .Module "mod-stateful-util" registered
> 11:15:09.146 sip_endpoint.c  .Module "mod-ua" registered
> 11:15:09.146 sip_endpoint.c  .Module "mod-100rel" registered
> 11:15:09.146 sip_endpoint.c  .Module "mod-pjsua" registered
> 11:15:09.146 sip_endpoint.c  .Module "mod-invite" registered
> 11:15:09.146       pa_dev.c  ..PortAudio sound library initialized, 
> status=0
> 11:15:09.146       pa_dev.c  ..PortAudio host api count=1
> 11:15:09.146       pa_dev.c  ..Sound device count=0
> 11:15:09.147          pjlib  ..select() I/O Queue created (0x1d30348)
> 11:15:09.153 sip_endpoint.c  .Module "mod-evsub" registered
> 11:15:09.153 sip_endpoint.c  .Module "mod-presence" registered
> 11:15:09.153 sip_endpoint.c  .Module "mod-mwi" registered
> 11:15:09.153 sip_endpoint.c  .Module "mod-refer" registered
> 11:15:09.153 sip_endpoint.c  .Module "mod-pjsua-pres" registered
> 11:15:09.153 sip_endpoint.c  .Module "mod-pjsua-im" registered
> 11:15:09.153 sip_endpoint.c  .Module "mod-pjsua-options" registered
> 11:15:09.153   pjsua_core.c  .1 SIP worker threads created
> 11:15:09.153   pjsua_core.c  .pjsua version 2.3 for 
> Linux-3.5.0.23/x86_64/glibc-2.15 initialized
> 11:15:09.153   pjsua_core.c  .PJSUA state changed: CREATED --> INIT
> 11:15:09.153 sip_endpoint.c  Module "mod-default-handler" registered
> 11:15:09.153   pjsua_core.c  SIP UDP socket reachable at HOST_IP:5060
> 11:15:09.153   udp0x1d46640  SIP UDP transport started, published 
> address is HOST_IP:5060
> 11:15:09.153    pjsua_acc.c  Adding account: id=<sip:HOST_IP:5060>
> 11:15:09.153    pjsua_acc.c  .Account <sip:HOST_IP:5060> added with id 0
> 11:15:09.153    pjsua_acc.c  Modifying accunt 0
> 11:15:09.153    pjsua_acc.c  Acc 0: setting online status to 1..
> 11:15:09.154    tcplis:5060  SIP TCP listener ready for incoming 
> connections at HOST_IP:5060
> 11:15:09.154    pjsua_acc.c  Adding account: 
> id=<sip:Host_IP:5060;transport=TCP>
> 11:15:09.154    pjsua_acc.c  .Account <sip:HOST_IP:5060;transport=TCP> 
> added with id 1
> 11:15:09.154    pjsua_acc.c  Modifying accunt 1
> 11:15:09.154    pjsua_acc.c  Acc 1: setting online status to 1..
> 11:15:09.154   pjsua_core.c  PJSUA state changed: INIT --> STARTING
> 11:15:09.154 sip_endpoint.c  .Module "mod-unsolicited-mwi" registered
> 11:15:09.154   pjsua_core.c  .PJSUA state changed: STARTING --> RUNNING
> 11:15:09.154         main.c  Ready: Success
> >>>>
> Account list:
>   [ 0] <sip:Host_IP:5060>: does not register
>        Online status: Online
>  *[ 1] <sip:Host_IP:5060;transport=TCP>: does not register
>        Online status: Online
> Buddy list:
>  -none-
>
> +=============================================================================+
> |       Call Commands:         |   Buddy, IM & Presence:  |     
> Account:      |
> |                              | |                   |
> |  m  Make new call            | +b  Add new buddy       .| +a  Add 
> new accnt |
> |  M  Make multiple calls      | -b  Delete buddy         | -a  Delete 
> accnt. |
> |  a  Answer call              |  i  Send IM              | !a  Modify 
> accnt. |
> |  h  Hangup call  (ha=all)    |  s  Subscribe presence   | rr  
> (Re-)register |
> |  H  Hold call                |  u  Unsubscribe presence | ru  
> Unregister    |
> |  v  re-inVite (release hold) |  t  ToGgle Online status | >  Cycle 
> next ac.|
> |  U  send UPDATE              |  T  Set online status    | <  Cycle 
> prev ac.|
> | ],[ Select next/prev call 
> +--------------------------+-------------------+
> |  x  Xfer call                |      Media Commands:     | Status & 
> Config: |
> |  X  Xfer with Replaces       | |                   |
> |  #  Send RFC 2833 DTMF       | cl  List ports           | d  Dump 
> status   |
> |  *  Send DTMF with INFO      | cc  Connect port         | dd  Dump 
> detailed |
> | dq  Dump curr. call quality  | cd  Disconnect port      | dc  Dump 
> config   |
> |                              |  V  Adjust audio Volume  | f  Save 
> config   |
> |  S  Send arbitrary REQUEST   | Cp  Codec priorities 
> |                   |
> +-----------------------------------------------------------------------------+
> |  q  QUIT   L  ReLoad   sleep MS   echo [0|1|txt]     n: detect NAT 
> type     |
> +=============================================================================+
> You have 0 active call.
>
> I am new to PJSIP so please bear if am doing it silly.
>
> Thanks and Regards
> Ashish
>
>
>
> On Mon, Nov 3, 2014 at 5:00 PM, Victor Medina 
> <victor.medina at cibersys.com <mailto:victor.medina at cibersys.com>> wrote:
>
>     Hi!
>
>     I may be wrong but PJNATH won't compile to a executable, so its
>     not a command.
>     PJNATH is a library you build your programs against it.
>
>     2014-11-03 6:42 GMT-04:30 ashish <aashishkhowal at gmail.com
>     <mailto:aashishkhowal at gmail.com>>:
>
>         Hi all,
>
>         Can anyone help me finding out the exact commands needed at
>         PJNATH client
>         for testing its functionality for STUN/TURN/ICE with turn server.
>
>         Any help in this regard is appreciated.
>
>         Thanks
>         Ashish
>
>
>         _______________________________________________
>         Visit our blog: http://blog.pjsip.org
>
>         pjsip mailing list
>         pjsip at lists.pjsip.org <mailto:pjsip at lists.pjsip.org>
>         http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>
>
>
>
>     -- 
>
>     V?ctor E. Medina M.
>     Software
>     +58424 291 4561
>     BB #79A8AFA2 /@VMCibersys
>
>
>     _______________________________________________
>     Visit our blog: http://blog.pjsip.org
>
>     pjsip mailing list
>     pjsip at lists.pjsip.org <mailto:pjsip at lists.pjsip.org>
>     http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>
>
>
>
> -- 
> Regards
> Ashish
>
>
> _______________________________________________
> 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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20141103/a5da73dc/attachment.html>


[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