asterisk/asterisk.patch.xfersips

changeset 798
4ef5d37e8bb2
parent 552
e568963742d6
equal deleted inserted replaced
4:f123c0bbaa84 5:e4b4b3007c3c
1 Index: channels/chan_sip.c 1 Index: channels/chan_sip.c
2 diff -Nau channels/chan_sip.c.orig channels/chan_sip.c 2 diff -Nau channels/chan_sip.c.orig channels/chan_sip.c
3 --- channels/chan_sip.c.orig 2011-05-23 17:35:28.358543497 +0200 3 --- channels/chan_sip.c.orig 2011-05-23 17:35:28.358543497 +0200
4 +++ channels/chan_sip.c 2011-05-23 17:57:05.948534524 +0200 4 +++ channels/chan_sip.c 2011-05-23 17:57:05.948534524 +0200
5 @@ -29733,6 +29733,7 @@ 5 @@ -30388,6 +30388,7 @@
6 \todo Fix this function so that we wait for reply to the REFER and 6 \todo Fix this function so that we wait for reply to the REFER and
7 react to errors, denials or other issues the other end might have. 7 react to errors, denials or other issues the other end might have.
8 */ 8 */
9 +/* MSvB: Paramater dest may be SIPS encoded, having '@' before domain */ 9 +/* MSvB: Paramater dest may be SIPS encoded, having '@' before domain */
10 static int sip_sipredirect(struct sip_pvt *p, const char *dest) 10 static int sip_sipredirect(struct sip_pvt *p, const char *dest)
11 { 11 {
12 char *cdest; 12 char *cdest;
13 @@ -29741,7 +29742,7 @@ 13 @@ -30396,7 +30397,7 @@
14 cdest = ast_strdupa(dest); 14 cdest = ast_strdupa(dest);
15 15
16 extension = strsep(&cdest, "@"); 16 extension = strsep(&cdest, "@");
17 - domain = cdest; 17 - domain = cdest;
18 + domain = strsep(&cdest, ":"); /* MSvB: Could begin with '@' if SIPS */ 18 + domain = strsep(&cdest, ":"); /* MSvB: Could begin with '@' if SIPS */
19 if (ast_strlen_zero(extension)) { 19 if (ast_strlen_zero(extension)) {
20 ast_log(LOG_ERROR, "Missing mandatory argument: extension\n"); 20 ast_log(LOG_ERROR, "Missing mandatory argument: extension\n");
21 return 0; 21 return 0;
22 @@ -29773,7 +29774,14 @@ 22 @@ -30428,7 +30429,14 @@
23 } 23 }
24 } 24 }
25 25
26 - ast_string_field_build(p, our_contact, "Transfer <sip:%s@%s>", extension, domain); 26 - ast_string_field_build(p, our_contact, "Transfer <sip:%s@%s>", extension, domain);
27 + if (domain && *domain == '@') { 27 + if (domain && *domain == '@') {

mercurial