With pjsip (asterisk 13.14.1) I see the problem that an anonymous from header gets user=phone appendend to the URI if user_eq_phone=yes is specified:
On the incoming leg: From: anonymous <sip:[email protected]:5060>;tag=Q5zBj7BMnvI6Fe6O2866fox3ZHmn-smt Get transformed to From: "Anonymous" <sip:[email protected];user=phone>;tag=fa3cb748-6af9-485f-8a70-a2b9ad40b13a on the outgoing leg. Setting user_eq_phone = no will result in user=phone not being added. The upstream provide demands user=phone in URIs if the username resembles a phonenumber, but declines the INVITE if user=phone is present on an anonymous username. Looking at the code,res/res_pjsip.c function ast_sip_add_usereqphone is the only place I see that might add user=phone: ================================================================================= int i = 0; //..... if (pj_strbuf(&sip_uri->user)[0] == '+') { i = 1; } /* Test URI user against allowed characters in AST_DIGIT_ANY */ for (; i < pj_strlen(&sip_uri->user); i++) { if (!strchr(AST_DIGIT_ANYNUM, pj_strbuf(&sip_uri->user)[i])) { break; } } if (i < pj_strlen(&sip_uri->user)) { return; } //add user=phone if we get to the code below ================================================================================= sip_uri->user should be "anonymous" AST_DIGIT_ANY is: #define AST_DIGIT_ANYNUM "0123456789" So in the for loop the first char of sip_uri->user should result in a NULL from strchr. Leaving i at the value 0, which is smaller than the length of sip_uri->user. And thus the function should return before adding the user=phone. So why is user=phone being added? -- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- Check out the new Asterisk community forum at: https://community.asterisk.org/ New to Asterisk? Start here: https://wiki.asterisk.org/wiki/display/AST/Getting+Started asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
