Summary: | ASTERISK-27971: res_pjsip: Implement additional SIP RFCs for Google Voice trunk compatability | ||
Reporter: | Nick French (naf) | Labels: | pjsip |
Date Opened: | 2018-07-18 07:11:51 | Date Closed: | 2018-10-25 05:51:57 |
Priority: | Major | Regression? | |
Status: | Closed/Complete | Components: | pjproject/pjsip Resources/res_pjsip_outbound_registration |
Versions: | GIT | Frequency of Occurrence | |
Related Issues: | |||
Environment: | Attachments: | ( 0) gvoice.txt | |
Description: | Background: Google Voice trunks are currently supported in Asterisk via chan_motif. Google has announced they plan to migrate away from the XMPP protocol used by chan_motif to a new SIP-based protocol. However, their new SIP servers use additional standards extending what is commonly implemented in a SIP UAC.
The following additional features required by the new Google Voice SIP registrar are not currently implemented in Asterisk: - Service-Routes (RFC 3608) - P-Preferred-Identity (RFC 3325) - Outbound supported header (RFC 5626) - OAuth / Bearer token authentication (draft-ietf-sipcore-sip-authn-02) - Mechanisms to use separate TLS transports for separate registrations and their associated message dialog - (optional) User-configurable additions to SIP Contact header | ||
Comments: | By: Asterisk Team (asteriskteam) 2018-07-18 07:11:53.010-0500 Thanks for creating a report! The issue has entered the triage process. That means the issue will wait in this status until a Bug Marshal has an opportunity to review the issue. Once the issue has been reviewed you will receive comments regarding the next steps towards resolution. A good first step is for you to review the [Asterisk Issue Guidelines|https://wiki.asterisk.org/wiki/display/AST/Asterisk+Issue+Guidelines] if you haven't already. The guidelines detail what is expected from an Asterisk issue report. Then, if you are submitting a patch, please review the [Patch Contribution Process|https://wiki.asterisk.org/wiki/display/AST/Patch+Contribution+Process]. By: Dmitriy Serov (Demon) 2018-08-24 11:57:58.240-0500 After applying patch and using new "outbound_registration" for all endpoints where is the BUG. INVITE sip:791519XXXX@multifon.ru SIP/2.0 Supported: 100rel, timer, replaces, norefersub Session-Expires: 1800 Min-SE: 90 Route: <sip:srv_d24948@193.201.XX.XX:8080;transport=udp;lr>;line=zxzfbbm P-Preferred-Identity: Max-Forwards: 70 User-Agent: ruVoIP.net PBX Content-Type: application/sdp Content-Length: 245 Header "P-Preferred-Identity" has empty value. As the result: SIP/2.0 400 Invalid P-Preferred-Identity It is not google voice account. By: Dmitriy Serov (Demon) 2018-10-10 05:24:48.739-0500 attachments gvoice.txt Strange sequence REGISTER packets. 1. 423 Interval Too Brief func handle_registration_response (res/res_pjsip_outbound_registration.c) does not have a handler of code 423. I think there needs to be processing this code and call schedule_retry 2. Second REGISTER packet does not have "Supported: path" By: Dmitriy Serov (Demon) 2018-10-10 14:13:18.176-0500 res/res_pjsip_outbound_registration.c static const char *fetch_google_access_token(const struct ast_sip_auth *auth) char buf[4096]; 4096 - sometimes goole returns more then 4096 bytes answer. I don't know why. As the result: ERROR[17668]: res_pjsip_outbound_registration.c:1462 in fetch_google_access_token: Could not retrieve Google OAuth 2.0 authentication The same error in res_xmpp.c Every asterisk update needs to patch: buffer size to 8192 bytes. By: Friendly Automation (friendly-automation) 2018-10-25 05:51:59.405-0500 Change 9505 merged by Joshua Colp: res_pjsip: Implement additional SIP RFCs for Google Voice trunk compatability [https://gerrit.asterisk.org/9505|https://gerrit.asterisk.org/9505] |