# HG changeset patch # User Alexandre Westfahl # Date 1280301449 -32400 # Node ID f38bff0bf3e9d870b044c867956a65a7bdf8c71f # Parent 1073e261170e9f6bd86904f0644178453f266e0b Added dynamic port choice for app_sip diff -r 1073e261170e -r f38bff0bf3e9 doc/app_sip.conf.sample --- a/doc/app_sip.conf.sample Wed Jul 28 16:01:53 2010 +0900 +++ b/doc/app_sip.conf.sample Wed Jul 28 16:17:29 2010 +0900 @@ -4,6 +4,11 @@ mode = DSSERVER; +# Administrator commands port (port should be provided with "-p" in remote line) +ppr_port=90; +rtr_port=91; + + #******************# #*****DATABASE*****# #******************# diff -r 1073e261170e -r f38bff0bf3e9 extensions/app_sip/app_sip.h --- a/extensions/app_sip/app_sip.h Wed Jul 28 16:01:53 2010 +0900 +++ b/extensions/app_sip/app_sip.h Wed Jul 28 16:17:29 2010 +0900 @@ -65,7 +65,8 @@ char * mysql_server; char mysql_prefix[10]; //default: as_ uint16_t mysql_port; //if 0, default port will be used - + uint16_t rtr_port; + uint16_t ppr_port; }; extern struct as_conf * as_conf; @@ -134,7 +135,7 @@ int app_sip_RTR_cb(struct rtrsipaor structure); int app_sip_PPR_cb(struct pprsipaor structure); -#define PORT 666 //TODO:put in conf file + int ds_entry(); void fd_ext_fini(void); diff -r 1073e261170e -r f38bff0bf3e9 extensions/app_sip/app_sip.l --- a/extensions/app_sip/app_sip.l Wed Jul 28 16:01:53 2010 +0900 +++ b/extensions/app_sip/app_sip.l Wed Jul 28 16:17:29 2010 +0900 @@ -120,7 +120,12 @@ (?i:"mysql_port") { return ASMYSQL_PORT; } - +(?i:"rtr_port") { + return RTR_PORT; + } +(?i:"ppr_port") { + return PPR_PORT; + } (?i:"mode") { return MODE; } diff -r 1073e261170e -r f38bff0bf3e9 extensions/app_sip/app_sip.y --- a/extensions/app_sip/app_sip.y Wed Jul 28 16:01:53 2010 +0900 +++ b/extensions/app_sip/app_sip.y Wed Jul 28 16:17:29 2010 +0900 @@ -123,6 +123,8 @@ %token ASMYSQL_DATABASE %token ASMYSQL_SERVER %token ASMYSQL_PORT +%token RTR_PORT +%token PPR_PORT /* Tokens and types for routing table definition */ /* A (de)quoted string (malloc'd in lex parser; it must be freed after use) */ @@ -145,6 +147,8 @@ | conffile mysql_database | conffile mysql_server | conffile mysql_port + | conffile rtr_port + | conffile ppr_port ; mode: MODE '=' INTEGER ';' @@ -192,3 +196,13 @@ as_conf->mysql_port = (uint16_t)$3; } ; +rtr_port: RTR_PORT '=' INTEGER ';' + { + as_conf->rtr_port = (uint16_t)$3; + } + ; +ppr_port: PPR_PORT '=' INTEGER ';' + { + as_conf->ppr_port = (uint16_t)$3; + } + ; diff -r 1073e261170e -r f38bff0bf3e9 extensions/app_sip/pushprofile.c --- a/extensions/app_sip/pushprofile.c Wed Jul 28 16:01:53 2010 +0900 +++ b/extensions/app_sip/pushprofile.c Wed Jul 28 16:17:29 2010 +0900 @@ -46,15 +46,15 @@ //Procedure which always wait for data on socket void *ppr_socket(void *arg) { - /* + SOCKET sock; SOCKADDR_IN sin, csin; - struct rtrsipaor rtrsip; + struct pprsipaor pprsip; int rcvbytes=0; sock = socket(AF_INET, SOCK_STREAM, 0); sin.sin_addr.s_addr = inet_addr("127.0.0.1"); sin.sin_family = AF_INET; - sin.sin_port = htons(PORT); + sin.sin_port = htons(as_conf->ppr_port); socklen_t sinsize = sizeof(csin); int accepted=0; @@ -71,7 +71,7 @@ accepted=accept(sock, (struct sockaddr *)&csin,&sinsize); if(accepted>-1) { - rcvbytes=recv(accepted, &rtrsip, sizeof(struct rtrsipaor),0); + rcvbytes=recv(accepted, &pprsip, sizeof(struct pprsipaor),0); if(rcvbytes>-1) { @@ -85,7 +85,7 @@ } else TRACE_DEBUG(INFO,"Can't create socket!"); -*/ + pthread_exit(NULL); diff -r 1073e261170e -r f38bff0bf3e9 extensions/app_sip/registrationtermination.c --- a/extensions/app_sip/registrationtermination.c Wed Jul 28 16:01:53 2010 +0900 +++ b/extensions/app_sip/registrationtermination.c Wed Jul 28 16:17:29 2010 +0900 @@ -53,7 +53,7 @@ sock = socket(AF_INET, SOCK_STREAM, 0); sin.sin_addr.s_addr = inet_addr("127.0.0.1"); sin.sin_family = AF_INET; - sin.sin_port = htons(PORT); + sin.sin_port = htons(as_conf->rtr_port); socklen_t sinsize = sizeof(csin); int accepted=0; @@ -250,7 +250,7 @@ } //TODO:remove for debug - fd_msg_dump_walk(INFO,message); + //fd_msg_dump_walk(INFO,message); CHECK_FCT( fd_msg_send( &message, NULL, NULL )); return 0; diff -r 1073e261170e -r f38bff0bf3e9 extensions/app_sip/tools/app_sip_ppr.c --- a/extensions/app_sip/tools/app_sip_ppr.c Wed Jul 28 16:01:53 2010 +0900 +++ b/extensions/app_sip/tools/app_sip_ppr.c Wed Jul 28 16:17:29 2010 +0900 @@ -47,7 +47,7 @@ #include #include #include -#define PORT 667 + #include struct pprsipaor @@ -65,11 +65,12 @@ SOCKADDR_IN sin; struct pprsipaor pprsip; int numdatatype=0,i=0; - + int port=667; + sock = socket(AF_INET, SOCK_STREAM, 0); sin.sin_addr.s_addr = inet_addr("127.0.0.1"); sin.sin_family = AF_INET; - sin.sin_port = htons(PORT); + //We initialize the structure pprsip.username[0]='\0'; @@ -157,6 +158,18 @@ { pprsip.accounting=1; + + } + else if(strcmp(argv[i],"-p")==0) + { + + if(sscanf(argv[i+1],"%d", &port)!=1) + { + fprintf(stderr,"Incorrect port number!\n"); + return 1; + } + + i++; } @@ -169,6 +182,8 @@ } + //We set the port number + sin.sin_port = htons(port); //We want a username @@ -179,7 +194,7 @@ } - + fprintf(stderr,"%d!\n",port); /* //DEBUG diff -r 1073e261170e -r f38bff0bf3e9 extensions/app_sip/tools/app_sip_rtr.c --- a/extensions/app_sip/tools/app_sip_rtr.c Wed Jul 28 16:01:53 2010 +0900 +++ b/extensions/app_sip/tools/app_sip_rtr.c Wed Jul 28 16:17:29 2010 +0900 @@ -47,7 +47,6 @@ #include #include #include -#define PORT 666 #include struct rtrsipaor @@ -67,11 +66,12 @@ SOCKADDR_IN sin; struct rtrsipaor rtrsip; int numaor=0,i=0; - + int port=666; + sock = socket(AF_INET, SOCK_STREAM, 0); sin.sin_addr.s_addr = inet_addr("127.0.0.1"); sin.sin_family = AF_INET; - sin.sin_port = htons(PORT); + //We initialize the structure rtrsip.username[0]='\0'; @@ -214,6 +214,18 @@ //Remote SIP Server rtrsip.reason=3; } + else if(strcmp(argv[i],"-p")==0) + { + + if(sscanf(argv[i+1],"%d", &port)!=1) + { + fprintf(stderr,"Incorrect port number!\n"); + return 1; + } + + + i++; + } else { fprintf(stderr,"Unknown argument: %s\n",argv[i]); @@ -246,7 +258,8 @@ return 1; } - + //We set the port number + sin.sin_port = htons(port); /*