Changeset 2535
Added regserver to sip_friends realtime
Comitted by:
mikael
Date:
Feb 13 2007 * 13:46 (over 4 years ago)
Affected files:
openpbx/trunk/channels/chan_sip.c (diff)
openpbx/trunk/doc/README.extconfig
openpbx/trunk/doc/README.realtime
openpbx/trunk/channels/chan_sip.c (unified diff)
| r2533 | r2535 | |
|---|---|---|
| 2256 | 2256 | } |
| 2257 | 2257 | |
| 2258 | 2258 | /*! \brief realtime_update_peer: Update peer object in realtime storage */ |
| 2259 | /*! \brief Update peer object in realtime storage | |
| 2260 | If the Asterisk system name is set in asterisk.conf, we will use | |
| 2261 | that name and store that in the "regserver" field in the sippeers | |
| 2262 | table to facilitate multi-server setups. | |
| 2263 | */ | |
| 2259 | 2264 | static void realtime_update_peer(const char *peername, struct sockaddr_in *sin, const char *username, const char *fullcontact, int expiry, const char *useragent) |
| 2260 | 2265 | { |
| 2261 | 2266 | char port[10]; |
| 2262 | 2267 | char ipaddr[20]; |
| 2263 | 2268 | char regseconds[20] = "0"; |
| 2264 | 2269 | |
| 2270 | char *sysname = opbx_config_OPBX_SYSTEM_NAME; | |
| 2271 | char *syslabel = NULL; | |
| 2272 | ||
| 2265 | 2273 | if (expiry) |
| 2266 | 2274 | { |
| 2267 | 2275 | /* Registration */ |
| --- | --- | |
| 2272 | 2280 | opbx_inet_ntoa(ipaddr, sizeof(ipaddr), sin->sin_addr); |
| 2273 | 2281 | snprintf(port, sizeof(port), "%d", ntohs(sin->sin_port)); |
| 2274 | 2282 | } |
| 2283 | ||
| 2284 | if (opbx_strlen_zero(sysname)) /* No system name, disable this */ | |
| 2285 | sysname = NULL; | |
| 2286 | else | |
| 2287 | syslabel = "regserver"; | |
| 2288 | ||
| 2275 | 2289 | if (fullcontact) |
| 2276 | opbx_update_realtime("sippeers", "name", peername, "ipaddr", ipaddr, "port", port, "regseconds", regseconds, | |
| 2277 | "username", username, "useragent", useragent, "fullcontact", fullcontact, NULL); | |
| 2290 | opbx_update_realtime("sippeers", "name", peername, "ipaddr", ipaddr, "port", port, "regseconds", | |
| 2291 | regseconds, "username", username, "useragent", useragent, "fullcontact", fullcontact, syslabel, | |
| 2292 | sysname, NULL); | |
| 2278 | 2293 | else |
| 2279 | opbx_update_realtime("sippeers", "name", peername, "ipaddr", ipaddr, "port", port, "regseconds", regseconds, | |
| 2280 | "username", username, "useragent", useragent, NULL); | |
| 2294 | opbx_update_realtime("sippeers", "name", peername, "ipaddr", ipaddr, "port", port, "regseconds", | |
| 2295 | regseconds, "username", username, "useragent", useragent, syslabel, sysname, NULL); | |
| 2296 | ||
| 2281 | 2297 | } |
| 2282 | 2298 | |
| 2283 | 2299 | /*! \brief register_peer_exten: Automatically add peer extension to dial plan */ |
| --- | --- | |
| 7699 | 7715 | { |
| 7700 | 7716 | if (opbx_test_flag(&(peer->flags_page2), SIP_PAGE2_RT_FROMCONTACT)) |
| 7701 | 7717 | { |
| 7702 | opbx_update_realtime("sippeers", "name", peer->name, "fullcontact", "", "port", "", "username", "", NULL); | |
| 7718 | opbx_update_realtime("sippeers", "name", peer->name, "fullcontact", "", "port", "", "username", "", | |
| 7719 | "regserver", "", NULL); | |
| 7703 | 7720 | } |
| 7704 | 7721 | else |
| 7705 | 7722 | { |
![Home changeset 2535 [home]](/images/logo.png?1180520111)

RSS Feeds