Replaces header is fixed in either Replaces of INVITE or of REFER
messages. New sbc profile options:
fix_replaces_inv=[yes|no]
fix_replaces_ref=[yes|no]
relevant commits:
28dd1a8 added method to print canonical URI
e2cb88c c/f: return value of skip_name() is signed, size_t is not.
01c4e1c sbc: first REGISTER cache draft
c39cd27 generic request forwarding (WIP 2)
786a59a added add_param_to_param_list(), add_user_param() and print() methods
e9f988c b/f: parsing issue in AmUriParser when dealing with parameters in the username part (bug # 81)
01b2796 sbc: added support for R-URI host modification
20d7bef b/f: fix display name replacements, $fn/$tn etc
plus tests
was: 082f06f5 ... and not installing default config files
Note: proper targets should be used (e.g. install-bin) if only
binaries should be installed, or alternatively the pkg script should
remove installed cfg files afterwards. install target
installs the complete package
--
-- This DSM app
-- o plays early media from a file in the DB
-- o replies with final reply code/reason from P-App-Param
--
-- Parameters (P-App-Param):
-- audio_id - indicating audio file in DB; must be wav 16 bit pcm format (with wav header)
-- fr_code - final reply code
-- fr_reason - final reply reason
--
-- Example: P-App-Param: audio_id=rbt;fr_code=404;fr_reason="Not found"
DB table is provisioning.audio_files, select by id, e.g.
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | varchar(20) | YES | | NULL | |
| data | mediumblob | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
this prevents corruption in the (extremely rare) case that a reply
to SUBSCRIBE or a NOTIFY is already processed while the method to
send the SUBSCRIBE is still being processed (with the little overhead
of a bit more lock contention)
AmEventProcessingThread processes events posted
in the event queue until either server shutdown
is signaled or processing is requested to stop
with the stop_processing function.
Override the onEvent(AmEvent* ev) method, create
an object, start() it and post events to it.
If you need queue policing (e.g. overflow protection),
override police_event() function.
based on a patch by Robert Szokovacs
Conflicts:
apps/dsm/DSMCoreModule.cpp
apps/dsm/DSMCoreModule.h
core/AmRtpStream.h
core/AmSession.h
doc/dsm/dsm_syntax.txt
pauseReceiving()
stop RTP receiving (drop all received packets, also no RTP timeout check)
resumeReceiving()
restart RTP receiving
monitorRTPTimeout(enabled=false)
set call to monitor RTP timeout (enabled="true" or "false")