diff --git a/channels/chan_sip.c b/channels/chan_sip.c index d07da3452df082998afd709fcb93d1764dc8dc27..a06f2067c17fa5a2cee71d53e2eaa834ba8404ba 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -7412,7 +7412,7 @@ static int sip_register(const char *value, int lineno) * host2.extension => [extension] * host1.expiry => [expiry] */ - AST_NONSTANDARD_RAW_ARGS(host2, hostpart, '/'); + AST_NONSTANDARD_RAW_ARGS(host2, host1.hostpart, '/'); /*! * user1.userpart => [peer?][transport://]user[@domain] @@ -7423,10 +7423,11 @@ static int sip_register(const char *value, int lineno) * host2.extension => extension * host1.expiry => expiry */ - AST_NONSTANDARD_RAW_ARGS(host3, hostpart, ':'); + AST_NONSTANDARD_RAW_ARGS(host3, host2.hostpart, ':'); /*! - * user2.userpart => [peer?][transport://]user[@domain] + * user2.userpart => [peer?][transport://]user + * user2.domain => domain (regdomain) * user1.secret => secret * user1.authuser => authuser * host3.host => host @@ -7434,10 +7435,11 @@ static int sip_register(const char *value, int lineno) * host2.extension => extension (callback) * host1.expiry => expiry */ - AST_NONSTANDARD_RAW_ARGS(user2, user1.userpart, ':'); + AST_NONSTANDARD_RAW_ARGS(user2, user1.userpart, '@'); /*! - * user2.userpart => [peer?][transport://]user + * peername => peer + * user2.userpart => [transport://]user * user2.domain => domain (regdomain) * user1.secret => secret * user1.authuser => authuser @@ -7446,14 +7448,24 @@ static int sip_register(const char *value, int lineno) * host2.extension => extension (callback) * host1.expiry => expiry */ - AST_NONSTANDARD_RAW_ARGS(user2, user2.userpart, '@'); - if ((tmp = strchr(user2.userpart, '?'))) { *tmp = '\0'; peername = user2.userpart; user2.userpart = tmp + 1; } + /*! + * peername => peer + * transport_str => transport + * username => user + * user2.domain => domain (regdomain) + * user1.secret => secret + * user1.authuser => authuser + * host3.host => host + * host3.port => port + * host2.extension => extension (callback) + * host1.expiry => expiry + */ if ((tmp = strstr(user2.userpart, "://"))) { *tmp = '\0'; transport_str = user2.userpart;