summaryrefslogtreecommitdiff
path: root/pjnath/src/pjturn-client
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2009-04-13 08:54:10 +0000
committerBenny Prijono <bennylp@teluu.com>2009-04-13 08:54:10 +0000
commit0efc01a54a538cb2ecaf03dcc77e12d78b346c39 (patch)
treeee63745c12c13d0efea0a94040b4778ef3dcc138 /pjnath/src/pjturn-client
parent9053655bfd453951291fc84fdc99ea254c028611 (diff)
Ticket #780: Update TURN from draft 09 to draft 13:
- new rules for permissions: - permission must be created and refreshed explicitly with CreatePermission - transmitting data does not refresh permission - attributes changed/added: XOR-PEER-ADDRESS, XOR-RELAYED-ADDRESS, EVEN-PORT, DONT-FRAGMENT - attribute(s) removed: REQUESTED-PROPS - new status codes: 401 (Forbidden), 507 (Insufficient Capacity) - removed status codes: 443 (Invalid IP address), 444 (Invalid Port), 508 (Insufficient Port Capacity) git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2589 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjnath/src/pjturn-client')
-rw-r--r--pjnath/src/pjturn-client/client_main.c50
1 files changed, 36 insertions, 14 deletions
diff --git a/pjnath/src/pjturn-client/client_main.c b/pjnath/src/pjturn-client/client_main.c
index 36de03f5..0fbe85dd 100644
--- a/pjnath/src/pjturn-client/client_main.c
+++ b/pjnath/src/pjturn-client/client_main.c
@@ -138,6 +138,7 @@ static int init()
pj_stun_sock_cb stun_sock_cb;
char name[] = "peer0";
pj_uint16_t port;
+ pj_stun_sock_cfg ss_cfg;
pj_str_t server;
pj_bzero(&stun_sock_cb, sizeof(stun_sock_cb));
@@ -146,9 +147,15 @@ static int init()
g.peer[i].mapped_addr.addr.sa_family = pj_AF_INET();
+ pj_stun_sock_cfg_default(&ss_cfg);
+#if 1
+ /* make reading the log easier */
+ ss_cfg.ka_interval = 300;
+#endif
+
name[strlen(name)-1] = '0'+i;
status = pj_stun_sock_create(&g.stun_config, name, pj_AF_INET(),
- &stun_sock_cb, NULL,
+ &stun_sock_cb, &ss_cfg,
&g.peer[i], &g.peer[i].stun_sock);
if (status != PJ_SUCCESS) {
my_perror("pj_stun_sock_create()", status);
@@ -415,22 +422,23 @@ static void menu(void)
puts("\n");
- puts("+====================================================================+");
- puts("| CLIENT | PEER-0 |");
- puts("| | |");
- printf("| State : %-12s | Address: %-21s |\n",
+ puts("+=====================================================================+");
+ puts("| CLIENT | PEER-0 |");
+ puts("| | |");
+ printf("| State : %-12s | Address: %-21s |\n",
client_state, peer0_addr);
- printf("| Relay addr: %-21s | |\n",
+ printf("| Relay addr: %-21s | |\n",
relay_addr);
- puts("| | 0 Send data to relay address |");
- puts("| a Allocate relay +--------------------------------+ ");
- puts("| s,ss Send data to peer 0/1 | PEER-1 |");
- puts("| b,bb BindChannel to peer 0/1 | |");
- printf("| x Delete allocation | Address: %-21s |\n",
+ puts("| | 0 Send data to relay address |");
+ puts("| a Allocate relay | |");
+ puts("| p,pp Set permission for peer 0/1 +--------------------------------+");
+ puts("| s,ss Send data to peer 0/1 | PEER-1 |");
+ puts("| b,bb BindChannel to peer 0/1 | |");
+ printf("| x Delete allocation | Address: %-21s |\n",
peer1_addr);
- puts("+-----------------------------------+ |");
- puts("| q Quit d Dump | 1 Send data to relay adderss |");
- puts("+-----------------------------------+--------------------------------+");
+ puts("+------------------------------------+ |");
+ puts("| q Quit d Dump | 1 Send data to relay adderss |");
+ puts("+------------------------------------+--------------------------------+");
printf(">>> ");
fflush(stdout);
}
@@ -488,6 +496,20 @@ static void console_main(void)
if (status != PJ_SUCCESS)
my_perror("turn_udp_bind_channel() failed", status);
break;
+ case 'p':
+ if (g.relay == NULL) {
+ puts("Error: no relay");
+ continue;
+ }
+ if (input[1]!='p')
+ peer = &g.peer[0];
+ else
+ peer = &g.peer[1];
+
+ status = pj_turn_sock_set_perm(g.relay, 1, &peer->mapped_addr, 1);
+ if (status != PJ_SUCCESS)
+ my_perror("pj_turn_sock_set_perm() failed", status);
+ break;
case 'x':
if (g.relay == NULL) {
puts("Error: no relay");