asterisk merge requestshttps://dev.iopsys.eu/voice/asterisk/-/merge_requests2024-03-21T09:30:28Zhttps://dev.iopsys.eu/voice/asterisk/-/merge_requests/158Fix bug --- asterisk crashed when wan link disconnected2024-03-21T09:30:28ZGeorge YangFix bug --- asterisk crashed when wan link disconnectedFix Bug #13950 -- Asterisk crashed when WAN network broken
https://project.iopsys.eu/issues/13950Fix Bug #13950 -- Asterisk crashed when WAN network broken
https://project.iopsys.eu/issues/13950George YangGeorge Yanghttps://dev.iopsys.eu/voice/asterisk/-/merge_requests/156workaround for ref count correction2024-03-08T09:58:37ZWenpeng Songworkaround for ref count correctionRemaining channel when ref>2 and crash when ref<2 during hangup.Remaining channel when ref>2 and crash when ref<2 during hangup.Wenpeng SongWenpeng Songhttps://dev.iopsys.eu/voice/asterisk/-/merge_requests/155ref count correction for transfer2024-03-07T09:12:18ZWenpeng Songref count correction for transferCrash due to a race condition between this ref correction https://dev.iopsys.eu/voice/asterisk/-/blob/devel/channels/chan_pjsip.c#L2088-2095 and the unref under chan_voicemngr_attended_call_transfer https://dev.iopsys.eu/voice/asterisk-c...Crash due to a race condition between this ref correction https://dev.iopsys.eu/voice/asterisk/-/blob/devel/channels/chan_pjsip.c#L2088-2095 and the unref under chan_voicemngr_attended_call_transfer https://dev.iopsys.eu/voice/asterisk-chan-voicemngr/-/blob/devel/src/channels/chan_voicemngr.c?ref_type=heads#L5646-5651 .
When the correction happend and finished before the unref during the transfer, which leading the result of ref=1 after the unref, then the crash happened during hangup the channel, add an extra correction for ref<2 could resolve this issue.Wenpeng SongWenpeng Songhttps://dev.iopsys.eu/voice/asterisk/-/merge_requests/154configuration for retries of SIP Registration failover2024-02-28T16:53:36ZGeorge Yangconfiguration for retries of SIP Registration failover- When SIP response 408/503/500 is received for SIP Register requests
to all server addresses, the failover retry will be scheduled
with certain time interval.
- If number of continuous failed retries reached 'failover_max_retries',...- When SIP response 408/503/500 is received for SIP Register requests
to all server addresses, the failover retry will be scheduled
with certain time interval.
- If number of continuous failed retries reached 'failover_max_retries',
the SIP registraion will be given up. By default, the number is '-1',
i.e. unlimited.
- 'failover_interval1' is used between normal failover retries, which
is 10 seconds by default.
- 'failover_interval2' is used once after every 3 continuous retries,
which is 60 seconds by default.https://dev.iopsys.eu/voice/asterisk/-/merge_requests/153Update asterisk doc: uci "vmloglevel" and "hookflash"2024-02-28T16:53:36ZGeorge YangUpdate asterisk doc: uci "vmloglevel" and "hookflash"https://dev.iopsys.eu/voice/asterisk/-/merge_requests/151Add Source and Destination averageRoundTripDelay to cdr2024-02-06T13:46:03ZGrzegorz SlujaAdd Source and Destination averageRoundTripDelay to cdrAlso remove not needed changes in cdr_beanstalkd.c, cdr_odbc.c,
cdr_radius.c and cdr_tds.c.Also remove not needed changes in cdr_beanstalkd.c, cdr_odbc.c,
cdr_radius.c and cdr_tds.c.Grzegorz SlujaGrzegorz Slujahttps://dev.iopsys.eu/voice/asterisk/-/merge_requests/149Added 'prefdir' option to asterisk's CDR config2024-02-06T11:10:08ZVitaliy SaychukAdded 'prefdir' option to asterisk's CDR configThis allows to specify a directory prefix in uci for the asterisk csv_master CDR file
It makes possible to access call logs in the data model after a rebootThis allows to specify a directory prefix in uci for the asterisk csv_master CDR file
It makes possible to access call logs in the data model after a rebootYalu ZhangYalu Zhanghttps://dev.iopsys.eu/voice/asterisk/-/merge_requests/150Add Source and Destination averageRoundTripDelay to cdr2024-02-06T09:28:46ZGrzegorz SlujaAdd Source and Destination averageRoundTripDelay to cdrGrzegorz SlujaGrzegorz Slujahttps://dev.iopsys.eu/voice/asterisk/-/merge_requests/147Fixed undefined ubus symbol2024-01-25T08:37:18ZBogdan BogushFixed undefined ubus symbolFixed module load issues on RDK-B:
```
ERROR[578] loader.c: Error loading module 'res_pjsip_outbound_registration.so': /usr/lib/asterisk/modules/res_pjsip_outbound_registration.so: undefined symbol: ubus_send_event
ERROR[578] loader.c: E...Fixed module load issues on RDK-B:
```
ERROR[578] loader.c: Error loading module 'res_pjsip_outbound_registration.so': /usr/lib/asterisk/modules/res_pjsip_outbound_registration.so: undefined symbol: ubus_send_event
ERROR[578] loader.c: Error loading module 'res_pjsip_pubsub.so': /usr/lib/asterisk/modules/res_pjsip_pubsub.so: undefined symbol: ubus_lookup_id
```Bogdan BogushBogdan Bogushhttps://dev.iopsys.eu/voice/asterisk/-/merge_requests/146DNS SRV resolver: stick to the latest server address2024-01-24T10:04:52ZGeorge YangDNS SRV resolver: stick to the latest server addressTrace the latest using server address, and make it
as the first choice in the resolved addresses of
DNS SRV records.Trace the latest using server address, and make it
as the first choice in the resolved addresses of
DNS SRV records.https://dev.iopsys.eu/voice/asterisk/-/merge_requests/144Cleanup ast_channel references for both hold/unhold SIP channels2024-01-23T13:32:21ZGeorge YangCleanup ast_channel references for both hold/unhold SIP channelsThe pjsip channel was not released after call transfer with setting
hold_target_before_refer='no'The pjsip channel was not released after call transfer with setting
hold_target_before_refer='no'https://dev.iopsys.eu/voice/asterisk/-/merge_requests/45Fixes for call waiting and 3way call scenarios2024-01-23T11:45:36ZGrzegorz SlujaFixes for call waiting and 3way call scenariosGrzegorz SlujaGrzegorz Slujahttps://dev.iopsys.eu/voice/asterisk/-/merge_requests/44Respond with 486 busy when Max Call limit exceeded2024-01-23T11:45:36ZGrzegorz SlujaRespond with 486 busy when Max Call limit exceededYalu ZhangYalu Zhanghttps://dev.iopsys.eu/voice/asterisk/-/merge_requests/140Use the real timestamp value for the audio frame->ts2024-01-10T14:52:07ZGrzegorz SlujaUse the real timestamp value for the audio frame->tsDo not set ptime as frame->ts since chan_voicemngr is using it as the
timestamp for both internal and external calls.Do not set ptime as frame->ts since chan_voicemngr is using it as the
timestamp for both internal and external calls.Grzegorz SlujaGrzegorz Slujahttps://dev.iopsys.eu/voice/asterisk/-/merge_requests/139Relace the calls to ubus_free() with ubus_free_context()2023-12-07T15:56:27ZYalu ZhangRelace the calls to ubus_free() with ubus_free_context()This is to avoid memory corruption issue that happens when more than one
thread calls ubus_free() which frees the global buffer which is defined
in libubus.This is to avoid memory corruption issue that happens when more than one
thread calls ubus_free() which frees the global buffer which is defined
in libubus.Yalu ZhangYalu Zhanghttps://dev.iopsys.eu/voice/asterisk/-/merge_requests/137Fix the issue that asterisk crash during some auto-test2023-11-10T12:55:21ZWenpeng SongFix the issue that asterisk crash during some auto-testThe issue original comes from the stage after the "multi-line appearance" test and before the "speed dial" test, combined with different environment changes including network, config and different services reload.
Direct reason leading ...The issue original comes from the stage after the "multi-line appearance" test and before the "speed dial" test, combined with different environment changes including network, config and different services reload.
Direct reason leading to this crash is the SIP un-registration request(during asterisk shutdown, or network re-connection) got an 200 OK with expiration value which is not 0(due to the server setting and network), and asterisk is handle this response as registration success based on the expiration value is not 0, which made the other steps followed went into uncontrollable stage(unstoppable loop of the un-registration requests until core crash).
Retrieve the requested expiration if possible, and check it combined with the received expiration to identify if the 200 OK response is regards to registering or unregisteringWenpeng SongWenpeng Songhttps://dev.iopsys.eu/voice/asterisk/-/merge_requests/138Merge branch asterisk-20.3.0 into devel properly2023-11-10T09:34:48ZAndreas GnauMerge branch asterisk-20.3.0 into devel properlyThis "merge" merges the proper history by reverting an accidentally squashed
merge and doing a proper merge commit after.
Thus, there is no change to the actual code.
History is best viewed locally. "To hide" the merged commits in git-...This "merge" merges the proper history by reverting an accidentally squashed
merge and doing a proper merge commit after.
Thus, there is no change to the actual code.
History is best viewed locally. "To hide" the merged commits in git-log-output one can use `--first-parent`Andreas GnauAndreas Gnauhttps://dev.iopsys.eu/voice/asterisk/-/merge_requests/133Fix sequence number used by asterisk for outgoing RTP packets2023-11-03T08:42:34ZGrzegorz SlujaFix sequence number used by asterisk for outgoing RTP packetsFor the simple call frame->seqno is taken from DSP and is used by
asterisk for the sequence number in RTP header, however for the call
conference the sequence number is generated by asterisk and it has to be
greater than the previous seq...For the simple call frame->seqno is taken from DSP and is used by
asterisk for the sequence number in RTP header, however for the call
conference the sequence number is generated by asterisk and it has to be
greater than the previous sequence number, otherwise srtp is not
forwarding 'too old' packet.Grzegorz SlujaGrzegorz Slujahttps://dev.iopsys.eu/voice/asterisk/-/merge_requests/136Fix sequence number used by asterisk for outgoing RTP packets2023-11-02T15:05:27ZGrzegorz SlujaFix sequence number used by asterisk for outgoing RTP packetsThere was no audio for 3-way conference when sRTP is used.
For 2-way calls frame->seqno is taken from DSP and is used by asterisk for the sequence number
in RTP headers. However for 3-way conference the sequence number is generated by as...There was no audio for 3-way conference when sRTP is used.
For 2-way calls frame->seqno is taken from DSP and is used by asterisk for the sequence number
in RTP headers. However for 3-way conference the sequence number is generated by asterisk and
it has to be greater than the previous value, otherwise libsrtp refuses to forward 'too old'
RTP packets.Grzegorz SlujaGrzegorz Slujahttps://dev.iopsys.eu/voice/asterisk/-/merge_requests/135Fix sequence number used by asterisk for outgoing RTP packets2023-11-02T10:44:06ZGrzegorz SlujaFix sequence number used by asterisk for outgoing RTP packetsFor the simple call frame->seqno is taken from DSP and is used by
asterisk for the sequence number in RTP header, however for the call
conference the sequence number is generated by asterisk and it has to be
greater than the previous seq...For the simple call frame->seqno is taken from DSP and is used by
asterisk for the sequence number in RTP header, however for the call
conference the sequence number is generated by asterisk and it has to be
greater than the previous sequence number, otherwise srtp is not
forwarding 'too old' packet.Grzegorz SlujaGrzegorz Sluja