diff options
author | Alexander Anikin <may213@yandex.ru> | 2018-04-17 13:33:36 +0300 |
---|---|---|
committer | Alexander Anikin <may213@yandex.ru> | 2018-04-18 13:46:30 +0300 |
commit | 95e8450194a4c6a1272ed738fedaabb7baa438f8 (patch) | |
tree | 61c88d14b720c6dc52b5a2fb760ef7290714c441 /addons/ooh323c/src/ooGkClient.c | |
parent | 2a6072a9c414a8fb7ecb1b6598873e60ef8cadf2 (diff) |
chan_ooh323: introduce localras config parameter
Introduce localras parameter that specify source IP
for connecting to Gatekeeper. Useful for multihome configurations.
ASTERISK-25129 #close
Reported by: Dmitry Melekhov
Tested by: Dmitry Melekhov
Change-Id: I0b604b01793f3e02a776502659e07cd3fc7e3097
Diffstat (limited to 'addons/ooh323c/src/ooGkClient.c')
-rw-r--r-- | addons/ooh323c/src/ooGkClient.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/addons/ooh323c/src/ooGkClient.c b/addons/ooh323c/src/ooGkClient.c index a307f4eef..4f7883833 100644 --- a/addons/ooh323c/src/ooGkClient.c +++ b/addons/ooh323c/src/ooGkClient.c @@ -49,7 +49,7 @@ static ASN1OBJID gProtocolID = { }; int ooGkClientInit(enum RasGatekeeperMode eGkMode, - char *szGkAddr, int iGkPort ) + char *szGkAddr, char *szRasAddr, int iGkPort ) { ooGkClient *pGkClient=NULL; OOInterface *cur=NULL; @@ -69,7 +69,11 @@ int ooGkClientInit(enum RasGatekeeperMode eGkMode, pGkClient->rrqRetries = 0; pGkClient->grqRetries = 0; - strcpy(pGkClient->localRASIP, gH323ep.signallingIP); + if (szRasAddr && *szRasAddr) { + strcpy(pGkClient->localRASIP, szRasAddr); + } else { + strcpy(pGkClient->localRASIP, gH323ep.signallingIP); + } #ifndef _WIN32 if(!strcmp(pGkClient->localRASIP, "0.0.0.0") || !strcmp(pGkClient->localRASIP, "127.0.0.1")) @@ -90,7 +94,6 @@ int ooGkClientInit(enum RasGatekeeperMode eGkMode, } if(cur) { - OOTRACEINFO2("Using local RAS Ip address %s\n", cur->addr); strcpy(pGkClient->localRASIP, cur->addr); } else{ @@ -98,6 +101,7 @@ int ooGkClientInit(enum RasGatekeeperMode eGkMode, return OO_FAILED; } } + OOTRACEINFO2("Using local RAS Ip address %s\n", pGkClient->localRASIP); #endif if(OO_OK != ooGkClientSetGkMode(pGkClient, eGkMode, szGkAddr, iGkPort)) { |