Documentation

Documentation.Migration-3-6-0-to-4-0-0 History

Hide minor edits - Show changes to markup

March 10, 2026, at 07:08 PM by razvancrainea -
Added line 196:
pua_mipua_publishpua_mi:publish
March 10, 2026, at 05:39 PM by razvancrainea -
Added lines 33-268:
MI naming logic
  • Canonical format: all MI commands are exported as module:command.
  • Legacy names: old MI names are kept as aliases where available.
  • Unqualified call: calling only command works only if the name is unambiguous.
  • Ambiguous call: ambiguous unqualified calls fail with JSON-RPC code -32001 (Method ambiguous).
  • Alias limit: each MI command can define up to 4 aliases.
  • Group listing: which command=module: lists all commands from that module/group.

The following table summarizes all MI function migration changes:

ModuleOld MI functionNew MI function
coreadd_blacklist_ruleblacklists:add_rule
corecache_fetchcache:fetch
corecache_removecache:remove
corecache_storecache:store
corecheck_blacklistblacklists:check
corecheck_blacklistsblacklists:check_all
coredel_blacklist_ruleblacklists:del_rule
coreevent_subscribeevi:subscribe
coreevents_listevi:list
coreget_statisticsstatistics:get
corelist_blacklistsblacklists:list
corelist_statisticsstatistics:list
coremem_pkg_dumpmem:pkg_dump
coremem_rpm_dumpmem:rpm_dump
coremem_shm_checkmem:shm_check
coremem_shm_dumpmem:shm_dump
coreraise_eventevi:raise
corereset_all_statisticsstatistics:reset_all
corereset_statisticsstatistics:reset
coresr_get_statusstatus_report:get
coresr_list_identifiersstatus_report:identifiers
coresr_list_reportsstatus_report:reports
coresr_list_statusstatus_report:status
coresubscribers_listevi:subscribers
auth_akaaka_av_addauth_aka:av_add
auth_akaaka_av_dropauth_aka:av_drop
auth_akaaka_av_drop_allauth_aka:av_drop_all
auth_akaaka_av_failauth_aka:av_fail
b2b_entitiesb2be_listb2b_entities:list
b2b_logicb2b_bridgeb2b_logic:bridge
b2b_logicb2b_listb2b_logic:list
b2b_logicb2b_terminate_callb2b_logic:terminate_call
b2b_logicb2b_trigger_scenariob2b_logic:trigger_scenario
b2b_scasca_listb2b_sca:list
benchmarkbm_enable_globalbenchmark:enable_global
benchmarkbm_enable_timerbenchmark:enable_timer
benchmarkbm_granularitybenchmark:granularity
benchmarkbm_loglevelbenchmark:loglevel
benchmarkbm_poll_resultsbenchmark:poll_results
binstls_tracebins:trace
cachedb_localcache_fetch_chunkcachedb_local:fetch_chunk
cachedb_localcache_remove_chunkcachedb_local:remove_chunk
call_centercc_agent_logincall_center:agent_login
call_centercc_dispatch_call_to_agentcall_center:dispatch_call_to_agent
call_centercc_internal_call_dispatchingcall_center:internal_call_dispatching
call_centercc_list_agentscall_center:list_agents
call_centercc_list_callscall_center:list_calls
call_centercc_list_flowscall_center:list_flows
call_centercc_list_queuecall_center:list_queue
call_centercc_reloadcall_center:reload
call_centercc_reset_statscall_center:reset_stats
callopscall_holdcallops:hold
callopscall_transfercallops:transfer
callopscall_unholdcallops:unhold
carrierroutecr_activate_hostcarrierroute:activate_host
carrierroutecr_add_hostcarrierroute:add_host
carrierroutecr_deactivate_hostcarrierroute:deactivate_host
carrierroutecr_delete_hostcarrierroute:delete_host
carrierroutecr_dump_routescarrierroute:dump_routes
carrierroutecr_reload_routescarrierroute:reload_routes
carrierroutecr_replace_hostcarrierroute:replace_host
clusterercluster_broadcast_miclusterer:broadcast_mi
clusterercluster_send_miclusterer:send_mi
clustererclusterer_listclusterer:list
clustererclusterer_list_capclusterer:list_cap
clustererclusterer_list_shtagsclusterer:list_shtags
clustererclusterer_list_topologyclusterer:list_topology
clustererclusterer_reloadclusterer:reload
clustererclusterer_remove_nodeclusterer:remove_node
clustererclusterer_set_cap_statusclusterer:set_cap_status
clustererclusterer_set_statusclusterer:set_status
clustererclusterer_shtag_set_activeclusterer:shtag_set_active
configconfig_flushconfig:flush
configconfig_listconfig:list
configconfig_pushconfig:push
configconfig_push_bulkconfig:push_bulk
configconfig_reloadconfig:reload
cpl_cGET_CPLcpl_c:get
cpl_cLOAD_CPLcpl_c:load
cpl_cREMOVE_CPLcpl_c:remove
db_berkeleybdb_reloaddb_berkeley:reload
db_flatstoreflat_rotatedb_flatstore:rotate
db_textdbt_dumpdb_text:dump
db_textdbt_reloaddb_text:reload
db_virtualdb_getdb_virtual:get
db_virtualdb_setdb_virtual:set
dialogdlg_cluster_syncdialog:cluster_sync
dialogdlg_db_syncdialog:db_sync
dialogdlg_end_dlgdialog:end_dlg
dialogdlg_listdialog:list
dialogdlg_list_ctxdialog:list_ctx
dialogdlg_push_vardialog:push_var
dialogdlg_restore_dbdialog:restore_db
dialogdlg_send_sequentialdialog:send_sequential
dialogdlg_set_profiledialog:set_profile
dialogdlg_unset_profiledialog:unset_profile
dialogset_dlg_profiledialog:set_profile
dialogunset_dlg_profiledialog:unset_profile
dialplandp_reloaddialplan:reload
dialplandp_show_partitiondialplan:show_partition
dialplandp_translatedialplan:translate
dispatcherds_listdispatcher:list
dispatcherds_push_script_attrsdispatcher:push_script_attrs
dispatcherds_reloaddispatcher:reload
dispatcherds_set_statedispatcher:set_state
domaindomain_dumpdomain:dump
domaindomain_reloaddomain:reload
droutingdr_carrier_statusdrouting:carrier_status
droutingdr_enable_probingdrouting:enable_probing
droutingdr_gw_statusdrouting:gw_status
droutingdr_number_routingdrouting:number_routing
droutingdr_reloaddrouting:reload
droutingdr_reload_statusdrouting:reload_status
event_flatstoreevi_flat_rotateevent_flatstore:rotate
fraud_detectionfraud_reloadfraud_detection:reload
fraud_detectionshow_fraud_statsfraud_detection:show_stats
freeswitch_scriptingfs_listfreeswitch_scripting:list
freeswitch_scriptingfs_reloadfreeswitch_scripting:reload
freeswitch_scriptingfs_subscribefreeswitch_scripting:subscribe
freeswitch_scriptingfs_unsubscribefreeswitch_scripting:unsubscribe
httpdhttpd_list_root_pathhttpd:list_root_path
imcimc_list_membersimc:list_members
imcimc_list_roomsimc:list_rooms
load_balancerlb_listload_balancer:list
load_balancerlb_reloadload_balancer:reload
load_balancerlb_resizeload_balancer:resize
load_balancerlb_statusload_balancer:status
media_exchangemedia_exchange_from_call_to_urimedia_exchange:from_call_to_uri
media_exchangemedia_exchange_from_call_to_uri_bodymedia_exchange:from_call_to_uri_body
media_exchangemedia_fork_from_call_to_urimedia_exchange:fork_from_call_to_uri
media_exchangemedia_terminatemedia_exchange:terminate
mqueuemq_fetchmqueue:fetch
mqueuemq_get_sizemqueue:get_size
mqueuemq_get_sizesmqueue:get_sizes
msrpmsrp_tracemsrp:trace
msrp_gatewaymsrp_gw_end_sessionmsrp_gateway:end_session
msrp_gatewaymsrp_gw_list_sessionsmsrp_gateway:list_sessions
msrp_uamsrp_ua_end_sessionmsrp_ua:end_session
msrp_uamsrp_ua_list_sessionsmsrp_ua:list_sessions
msrp_uamsrp_ua_send_messagemsrp_ua:send_message
msrp_uamsrp_ua_start_sessionmsrp_ua:start_session
nathelpernh_enable_pingnathelper:enable_ping
opentelemetryotel_enableopentelemetry:enable
pi_httppi_reload_tbls_and_cmdspi_http:reload_tbls_and_cmds
pikepike_listpike:list
pikepike_rmpike:rm
presencepres_exposepresence:expose
presencepres_phtable_listpresence:phtable_list
presencerefreshWatcherspresence:refresh_watchers
presence_dfksdfks_set_featurepresence_dfks:set_feature
pua_mipua_subscribepua_mi:subscribe
qroutingqr_disable_dstqrouting:disable_dst
qroutingqr_enable_dstqrouting:enable_dst
qroutingqr_reloadqrouting:reload
qroutingqr_statusqrouting:status
rate_cacherrc_addClientrate_cacher:addClient
rate_cacherrc_addVendorrate_cacher:addVendor
rate_cacherrc_deleteClientrate_cacher:deleteClient
rate_cacherrc_deleteClientRaterate_cacher:deleteClientRate
rate_cacherrc_deleteVendorrate_cacher:deleteVendor
rate_cacherrc_deleteVendorRaterate_cacher:deleteVendorRate
rate_cacherrc_getClientPricerate_cacher:getClientPrice
rate_cacherrc_getVendorPricerate_cacher:getVendorPrice
rate_cacherrc_reloadClientRaterate_cacher:reloadClientRate
rate_cacherrc_reloadVendorRaterate_cacher:reloadVendorRate
ratelimitrl_dump_piperatelimit:dump_pipe
ratelimitrl_get_pidratelimit:get_pid
ratelimitrl_listratelimit:list
ratelimitrl_reset_piperatelimit:reset_pipe
ratelimitrl_set_pidratelimit:set_pid
regexregex_matchregex:match
regexregex_match_groupregex:match_group
regexregex_reloadregex:reload
rlsrls_update_subscriptionsrls:update_subscriptions
rtp_relayrtp_relay_listrtp_relay:list
rtp_relayrtp_relay_updatertp_relay:update
rtp_relayrtp_relay_update_callidrtp_relay:update_callid
rtpenginertpengine_enablertpengine:enable
rtpenginertpengine_reloadrtpengine:reload
rtpenginertpengine_showrtpengine:show
rtpproxyrtpproxy_enablertpproxy:enable
rtpproxyrtpproxy_reloadrtpproxy:reload
rtpproxyrtpproxy_showrtpproxy:show
sipcapturesip_capturesipcapture:capture
sockets_mgmsockets_listsockets_mgm:list
sockets_mgmsockets_reloadsockets_mgm:reload
sql_cachersql_cacher_reloadsql_cacher:reload
stir_shakenstir_shaken_ca_reloadstir_shaken:ca_reload
stir_shakenstir_shaken_crl_reloadstir_shaken:crl_reload
tcp_mgmtcp_reloadtcp_mgm:reload
tlstls_tracetls:trace
tls_mgmtls_listtls_mgm:list
tls_mgmtls_reloadtls_mgm:reload
tmt_hashtm:hash
tmt_replytm:reply
tmt_uac_canceltm:uac_cancel
tmt_uac_dlgtm:uac_dlg
tracertrace_starttracer:start
tracertrace_stoptracer:stop
trietrie_number_deletetrie:number_delete
trietrie_number_upserttrie:number_upsert
trietrie_reloadtrie:reload
trietrie_reload_statustrie:reload_status
trietrie_searchtrie:search
uac_registrantreg_deleteuac_registrant:delete
uac_registrantreg_disableuac_registrant:disable
uac_registrantreg_enableuac_registrant:enable
uac_registrantreg_force_registeruac_registrant:force_register
uac_registrantreg_listuac_registrant:list
uac_registrantreg_reloaduac_registrant:reload
uac_registrantreg_upsertuac_registrant:upsert
userblacklistreload_blacklistuserblacklist:reload
usrlocul_addusrloc:add
usrlocul_cluster_syncusrloc:cluster_sync
usrlocul_dumpusrloc:dump
usrlocul_flushusrloc:flush
usrlocul_rmusrloc:rm
usrlocul_rm_contactusrloc:rm_contact
usrlocul_show_contactusrloc:show_contact
usrlocul_syncusrloc:sync
wsws_tracews:trace
wsswss_tracewss:trace
Added lines 295-307:
  • Canonical MI command format is now module:command (for example, usrloc:rm_contact, blacklists:list).
  • Local (module-less) MI calls are still accepted only if the local name is unambiguous across all modules.
  • Ambiguous module-less MI calls now fail with JSON-RPC custom error code -32001 (Method ambiguous) and return the supported canonical names.
  • MI commands can define up to 4 aliases (typically old names kept for compatibility).
  • Core command regrouping:
    • mem_* -> mem:*
    • sr_* -> status_report:* (with sr_get_status -> status_report:get)
    • event MI commands -> evi:*
    • cache MI commands -> cache:*
  • The which MI command now supports module listing by suffixing the module with : (example: which command=dialog: lists all dialog MI commands).

Statistics migration

Deleted lines 309-312:

Statistics migration

  • example
Added lines 312-313:
  • All MI function renames are consolidated in the MI command migration table above.
Changed lines 316-322 from:
  • the old MI_XMLRPC_NG module has been renamed to MI_XMLRPC - in order to migrate, you need to update your script and replace mi_xmlrpc_ng references to mi_xmlrpc.

PRESENCE module

  • the refreshWatchers MI function has been completely dropped in favor of the refresh_watchers MI command.
to:
  • The old MI_XMLRPC_NG module has been renamed to MI_XMLRPC - in order to migrate, replace mi_xmlrpc_ng references with mi_xmlrpc.
Changed lines 320-321 from:
  • the db_mode parameter has been dropped in favor of the working_mode_preset parameter.
  • the shared_pinging parameter has been completely dropped - use the pinging_mode parameter.
to:
  • The db_mode parameter has been dropped in favor of working_mode_preset.
  • The shared_pinging parameter has been completely dropped - use pinging_mode.
February 25, 2026, at 03:37 PM by razvancrainea -
Added lines 66-70:

MI_XMLRPC_NG module

  • the old MI_XMLRPC_NG module has been renamed to MI_XMLRPC - in order to migrate, you need to update your script and replace mi_xmlrpc_ng references to mi_xmlrpc.
February 24, 2026, at 05:09 PM by razvancrainea -
Changed lines 73-74 from:
  • the db_mode parameter has been dropped in favor of the https://opensips.org/docs/modules/3.6.x/usrloc.html#param_working_mode_preset working_mode_preset parameter.
  • the shared_pinging parameter has been completely dropped - use the https://opensips.org/docs/modules/3.6.x/usrloc.html#param_pinging_mode pinging_mode parameter.
to:
  • the db_mode parameter has been dropped in favor of the working_mode_preset parameter.
  • the shared_pinging parameter has been completely dropped - use the pinging_mode parameter.
February 24, 2026, at 05:09 PM by razvancrainea -
Changed lines 73-74 from:
  • the db_mode parameter has been dropped in favor of the https://opensips.org/docs/modules/3.6.x/usrloc.html#param_working_mode_preset working_mode_preset] parameter.
  • the shared_pinging parameter has been completely dropped - use the https://opensips.org/docs/modules/3.6.x/usrloc.html#param_pinging_mode pinging_mode] parameter.
to:
  • the db_mode parameter has been dropped in favor of the https://opensips.org/docs/modules/3.6.x/usrloc.html#param_working_mode_preset working_mode_preset parameter.
  • the shared_pinging parameter has been completely dropped - use the https://opensips.org/docs/modules/3.6.x/usrloc.html#param_pinging_mode pinging_mode parameter.
February 24, 2026, at 05:09 PM by razvancrainea -
Changed line 1 from:
Documentation -> Migration -> Migration from 3.5.x to 3.6.x
to:
Documentation -> Migration -> Migration from 3.6.x to 5.0.x
Changed lines 6-9 from:

This section is meant to provide useful help in migrating your OpenSIPS installations from the 3.5.x version to 3.6.x.

You can find the all the new additions in the 3.6 release compiled under this page. The ChangeLog may help your understanding of the migration / update process.

to:

This section is meant to provide useful help in migrating your OpenSIPS installations from the 3.6.x version to 4.0.x.

You can find the all the new additions in the 4.0 release compiled under this page. The ChangeLog may help your understanding of the migration / update process.

Changed line 15 from:

You can migrate your 3.5.x MySQL DB to the 3.6.x format using the opensips-cli tool :

to:

You can migrate your 3.6.x MySQL DB to the 4.0.x format using the opensips-cli tool :

Changed line 17 from:
   # opensips-cli -x database migrate 3.5_to_3.6 opensips_3_5 opensips_3_6
to:
   # opensips-cli -x database migrate 3.6_to_4.0 opensips_3_6 opensips_4_0
Changed lines 20-23 from:
  • opensips_3_5 is the existing DB name corresponding to version 3.5.x format
  • opensips_3_6 is the DB name to be created for 3.6.x format
to:
  • opensips_3_6 is the existing DB name corresponding to version 3.6.x format
  • opensips_4_0 is the DB name to be created for 4.0.x format
Deleted lines 29-32:

Subscriber table

  • email_address and rpid columns have been completely dropped from the subscriber table = if you want to preserve the columns in your setup, you need to manually add them to the new migrated table and copy the values from the old one.
Added lines 39-46:
  • The log_stderror parameter has been completely dropped, use stderror_enabled and/or instead
  • The log_facility parameter has been completely dropped, use syslog_facility instead
  • The log_name parameter has been completely dropped, use syslog_name instead
  • The listen parameter has been completely dropped, use socket instead

Core Variables

Deleted lines 48-51:

Core Variables

  • example
Changed lines 67-92 from:

Event_route module

  • the event_route module has been completely dropped and merged into core. Thus, you no longer need to load the module in your script, as it will be automatically loaded at startup. In order to migrate, simply delete the loadmodule "event_route.so" line from your script.

Prometheus module

  • paramameter script_route_avp_result has been dropped, and its behavior has been replaced with the newly added return values. Check the script_route documentation for more information.

RabbitMQ module

  • the rabbitmq module has been completely merged into the event_rabbitmq module. In order to migrate, you need to remove the loadmodule "rabbitmq.so" line and add the loadmoule "event_rabbitmq.so" line, in case it was not previously loaded.

Registrar module

  • for the attr_avp, the behavior is changed: it is still read from AVPs at save() time, but the contact attributes are now pushed back (at lookup() time) into message branch attributes $msg.branch.attr() - see example here.

SIPREC module

  • the media_ip parameter in the $siprec has been dropped, being fully replaced with the media parameter.

Packaging migration

  • On Debian and Fedora/Redhat, the opensips-berkeley-module, opensips-mysql-module, opensips-postgres-module and opensips-sqlite-module packages no longer come with the associated database schemas for each backend - instead, four new packages are being built, namely opensips-berkeley-dbschema, opensips-mysql-dbschema, opensips-postgres-dbschema and opensips-sqlite-dbschema, which contain the corresponding database schema for each backend. Since there is no cross dependency between the module and the dbschema, if one needs the schema as well, it needs to be installed the dbschema package separately. This change is being done on purpose, to be able to install the dbschema files on separate machines, and use them separately to install (for example using opensips-cli).
to:

PRESENCE module

  • the refreshWatchers MI function has been completely dropped in favor of the refresh_watchers MI command.

USRLOC module

  • the db_mode parameter has been dropped in favor of the https://opensips.org/docs/modules/3.6.x/usrloc.html#param_working_mode_preset working_mode_preset] parameter.
  • the shared_pinging parameter has been completely dropped - use the https://opensips.org/docs/modules/3.6.x/usrloc.html#param_pinging_mode pinging_mode] parameter.
May 21, 2025, at 12:43 PM by 109.99.227.30 -
Changed lines 71-74 from:

RabbitMQ module

  • the rabbitmq module has been completely merged into the event_rabbitmq module. In order to migrate, you need to remove the loadmodule "rabbitmq.so" line and add the loadmoule "event_rabbitmq.so" line, in case it was not previously loaded.
to:
Added lines 75-84:

RabbitMQ module

  • the rabbitmq module has been completely merged into the event_rabbitmq module. In order to migrate, you need to remove the loadmodule "rabbitmq.so" line and add the loadmoule "event_rabbitmq.so" line, in case it was not previously loaded.

Registrar module

  • for the attr_avp, the behavior is changed: it is still read from AVPs at save() time, but the contact attributes are now pushed back (at lookup() time) into message branch attributes $msg.branch.attr() - see example here.
September 09, 2024, at 02:49 PM by razvancrainea -
Added lines 66-69:

Event_route module

  • the event_route module has been completely dropped and merged into core. Thus, you no longer need to load the module in your script, as it will be automatically loaded at startup. In order to migrate, simply delete the loadmodule "event_route.so" line from your script.
September 06, 2024, at 02:29 PM by razvancrainea -
Added lines 66-69:

RabbitMQ module

  • the rabbitmq module has been completely merged into the event_rabbitmq module. In order to migrate, you need to remove the loadmodule "rabbitmq.so" line and add the loadmoule "event_rabbitmq.so" line, in case it was not previously loaded.
July 30, 2024, at 11:43 AM by razvancrainea -
Deleted lines 29-30:

(:toc-back Back to Table of Contents:)

Added lines 33-34:

(:toc-back Back to Table of Contents:)

July 30, 2024, at 11:43 AM by razvancrainea -
Changed lines 32-34 from:

Table migration

Subscriber

to:

Subscriber table

July 30, 2024, at 11:42 AM by razvancrainea -
Added lines 31-36:

Table migration

Subscriber

  • email_address and rpid columns have been completely dropped from the subscriber table = if you want to preserve the columns in your setup, you need to manually add them to the new migrated table and copy the values from the old one.
July 24, 2024, at 08:13 PM by razvancrainea -
Changed line 73 from:
  • On Debian and Fedora/Redhat, the opensips-berkeley-module, opensips-mysql-module, opensips-postgres-module and opensips-sqlite-module packages no longer come with the associated database schemas for each backend - instead, four new packages are being built, namely opensips-berkeley-dbschema, opensips-mysql-dbschema, opensips-postgres-dbschema and opensips-sqlite-dbschema, which contain the corresponding database schema for each backend. Since there is no cross dependency between the module and the dbschema, if one needs the schema as well, it needs to be installed the dbschema package separately. This change is being done on purpose, to be able to install the dbschema files on separate machines, and use them separately to install (for example using opensips-cli).
to:
  • On Debian and Fedora/Redhat, the opensips-berkeley-module, opensips-mysql-module, opensips-postgres-module and opensips-sqlite-module packages no longer come with the associated database schemas for each backend - instead, four new packages are being built, namely opensips-berkeley-dbschema, opensips-mysql-dbschema, opensips-postgres-dbschema and opensips-sqlite-dbschema, which contain the corresponding database schema for each backend. Since there is no cross dependency between the module and the dbschema, if one needs the schema as well, it needs to be installed the dbschema package separately. This change is being done on purpose, to be able to install the dbschema files on separate machines, and use them separately to install (for example using opensips-cli).
July 24, 2024, at 08:12 PM by razvancrainea -
Added lines 72-73:
  • On Debian and Fedora/Redhat, the opensips-berkeley-module, opensips-mysql-module, opensips-postgres-module and opensips-sqlite-module packages no longer come with the associated database schemas for each backend - instead, four new packages are being built, namely opensips-berkeley-dbschema, opensips-mysql-dbschema, opensips-postgres-dbschema and opensips-sqlite-dbschema, which contain the corresponding database schema for each backend. Since there is no cross dependency between the module and the dbschema, if one needs the schema as well, it needs to be installed the dbschema package separately. This change is being done on purpose, to be able to install the dbschema files on separate machines, and use them separately to install (for example using opensips-cli).
July 19, 2024, at 08:56 AM by razvancrainea -
Added lines 66-69:

SIPREC module

  • the media_ip parameter in the $siprec has been dropped, being fully replaced with the media parameter.
June 10, 2024, at 05:27 PM by razvancrainea -
Changed line 65 from:
  • paramameter script_route_avp_result has been dropped, and its behavior has been replaced with the newly added return values. Check the script_route documentation for more information.
to:
  • paramameter script_route_avp_result has been dropped, and its behavior has been replaced with the newly added return values. Check the script_route documentation for more information.
June 10, 2024, at 05:27 PM by razvancrainea -
Changed line 1 from:
Documentation -> Migration -> Migration from 3.4.x to 3.5.0
to:
Documentation -> Migration -> Migration from 3.5.x to 3.6.x
Changed lines 6-9 from:

This section is meant to provide useful help in migrating your OpenSIPS installations from the 3.4.0 version to 3.5.0.

You can find the all the new additions in the 3.5.0 release compiled under this page. The ChangeLog may help your understanding of the migration / update process.

to:

This section is meant to provide useful help in migrating your OpenSIPS installations from the 3.5.x version to 3.6.x.

You can find the all the new additions in the 3.6 release compiled under this page. The ChangeLog may help your understanding of the migration / update process.

Changed line 15 from:

You can migrate your 3.4.x MySQL DB to the 3.5.x format using the opensips-cli tool :

to:

You can migrate your 3.5.x MySQL DB to the 3.6.x format using the opensips-cli tool :

Changed line 17 from:
   # opensips-cli -x database migrate 3.4_to_3.5 opensips_3_4 opensips_3_5
to:
   # opensips-cli -x database migrate 3.5_to_3.6 opensips_3_5 opensips_3_6
Changed lines 20-23 from:
  • opensips_3_4 is the existing DB name corresponding to version 3.4.x format
  • opensips_3_5 is the DB name to be created for 3.5.x format
to:
  • opensips_3_5 is the existing DB name corresponding to version 3.5.x format
  • opensips_3_6 is the DB name to be created for 3.6.x format
Deleted lines 38-41:
  • The mpath parameter can take several values. This means that if your script contains several declarations, and you rely on the fact that only the last one is being used, you need to completely delete (or comment) the previous ones, otherwise they will be taken into account in the modules search algorithm, and moreover, they will be prioritized.

Core Variables

Added lines 41-44:

Core Variables

  • example
Deleted lines 50-53:
  • consider using the new set_via_handling() instead of force_rport(), add_local_report() or force_tcp_alias() (which are to be deprecated in the future)

Core MI commands

Added lines 53-56:

Core MI commands

  • example
Changed lines 63-78 from:

AVPOPS module

This module does not exist anymore. All its functions were re-distributed and replaced as follows:

  • avp_db_load/store/delete() functions were moved and renamed as sql_avp_load/store_delete() in the sqlops module
  • avp_db_query() function was moved and renamed as sql_query() in the sqlops module
  • avp_remove() function was removed, as it can be replaced with scripting $avp(x):=NULL
  • avp_pushto() function was removed, as it can be replaced with scripting assignment operation
  • avp_check() function was removed, as it can be replaced with scripting testing operators
  • avp_copy() function was removed, as it can be replaced with scripting assignment operation
  • avp_subst() function was removed, as it can be replaced with scripting {re.subst} transformation
  • avp_op() function was removed, as it can be replaced with scripting operations
  • is_avp_set() function was removed, as it can be replaced with scripting if ($avp(x)==NULL) {}
  • avp_shuffle() function was moved under the shuffle_avps() name into the cfgutils module
  • avp_print() function was moved to the OpenSIPS core under the same name

SQL_CACHER module

  • BE CAREFUL, the DOUBLE types are now returned as strings, rather than corrupted numerical values.
to:

Prometheus module

  • paramameter script_route_avp_result has been dropped, and its behavior has been replaced with the newly added return values. Check the script_route documentation for more information.
May 08, 2024, at 09:50 PM by 109.98.45.173 -
Changed lines 51-52 from:
  • consider using the new set_via_handling instead of force_rport(), add_local_report() or force_tcp_alias() (which are to be deprecated in the future)
to:
  • consider using the new set_via_handling() instead of force_rport(), add_local_report() or force_tcp_alias() (which are to be deprecated in the future)
Changed lines 64-65 from:
  • renamed into DBops module
to:

This module does not exist anymore. All its functions were re-distributed and replaced as follows:

  • avp_db_load/store/delete() functions were moved and renamed as sql_avp_load/store_delete() in the sqlops module
  • avp_db_query() function was moved and renamed as sql_query() in the sqlops module
  • avp_remove() function was removed, as it can be replaced with scripting $avp(x):=NULL
  • avp_pushto() function was removed, as it can be replaced with scripting assignment operation
  • avp_check() function was removed, as it can be replaced with scripting testing operators
  • avp_copy() function was removed, as it can be replaced with scripting assignment operation
  • avp_subst() function was removed, as it can be replaced with scripting {re.subst} transformation
  • avp_op() function was removed, as it can be replaced with scripting operations
  • is_avp_set() function was removed, as it can be replaced with scripting if ($avp(x)==NULL) {}
  • avp_shuffle() function was moved under the shuffle_avps() name into the cfgutils module
  • avp_print() function was moved to the OpenSIPS core under the same name
Changed line 78 from:
  • BE CAREFUL, the DOUBLE types are now returned as strings, rather than corrupted numerical values.
to:
  • BE CAREFUL, the DOUBLE types are now returned as strings, rather than corrupted numerical values.
May 08, 2024, at 09:30 PM by 109.98.45.173 -
Changed lines 35-37 from:
  • example
to:
  • none
Changed line 51 from:
  • example
to:
  • consider using the new set_via_handling instead of force_rport(), add_local_report() or force_tcp_alias() (which are to be deprecated in the future)
February 28, 2024, at 12:27 PM by 109.99.227.30 -
Changed lines 8-9 from:

You can find the all the new additions in the 3.5.0 release compiled under this page. The ChangeLog may help your understanding of the migration / update process.

to:

You can find the all the new additions in the 3.5.0 release compiled under this page. The ChangeLog may help your understanding of the migration / update process.

Deleted lines 66-68:

CACHEDB_LOCAL module

  • added cache_fetch_chunk("keyprefix*", collection) MI function
Changed line 68 from:
  • the DOUBLE types are now returned as strings, rather than corrupted numerical values.
to:
  • BE CAREFUL, the DOUBLE types are now returned as strings, rather than corrupted numerical values.
February 27, 2024, at 11:20 AM by 109.99.227.30 -
Added lines 66-68:

CACHEDB_LOCAL module

  • added cache_fetch_chunk("keyprefix*", collection) MI function
February 27, 2024, at 11:13 AM by 109.99.227.30 -
Changed lines 64-65 from:

B2B_LOGIC module

  • example
to:

AVPOPS module

  • renamed into DBops module

SQL_CACHER module

  • the DOUBLE types are now returned as strings, rather than corrupted numerical values.
August 03, 2023, at 03:03 PM by razvancrainea -
Deleted lines 67-69:

AUTH modules

August 03, 2023, at 03:02 PM by razvancrainea -
Changed line 40 from:
  • example
to:
  • The mpath parameter can take several values. This means that if your script contains several declarations, and you rely on the fact that only the last one is being used, you need to completely delete (or comment) the previous ones, otherwise they will be taken into account in the modules search algorithm, and moreover, they will be prioritized.
May 17, 2023, at 03:00 PM by liviu -
Changed line 1 from:
Documentation -> Migration -> Migration from 3.3.x to 3.4.0
to:
Documentation -> Migration -> Migration from 3.4.x to 3.5.0
Changed lines 6-9 from:

This section is meant to provide useful help in migrating your OpenSIPS installations from the 3.3.0 version to 3.4.0.

You can find the all the new additions in the 3.4.0 release compiled under this page. The ChangeLog may help your understanding of the migration / update process.

to:

This section is meant to provide useful help in migrating your OpenSIPS installations from the 3.4.0 version to 3.5.0.

You can find the all the new additions in the 3.5.0 release compiled under this page. The ChangeLog may help your understanding of the migration / update process.

Changed line 15 from:

You can migrate your 3.3.x MySQL DB to the 3.4.x format using the opensips-cli tool :

to:

You can migrate your 3.4.x MySQL DB to the 3.5.x format using the opensips-cli tool :

Changed line 17 from:
   # opensips-cli -x database migrate 3.3_to_3.4 opensips_3_3 opensips_3_4
to:
   # opensips-cli -x database migrate 3.4_to_3.5 opensips_3_4 opensips_3_5
Changed lines 20-23 from:
  • opensips_3_3 is the existing DB name corresponding to version 3.3.x format
  • opensips_3_4 is the DB name to be created for 3.4.x format
to:
  • opensips_3_4 is the existing DB name corresponding to version 3.4.x format
  • opensips_3_5 is the DB name to be created for 3.5.x format
Deleted lines 39-46:
  • log_facility has been deprecated and replaced with syslog_facility.
  • log_name has been deprecated and replaced with syslog_name.
  • log_stderror has been deprecated and is now equivalent with setting the new stderror_enabled and syslog_enabled parameters as following:
    • log_stderror=yes - stderror_enabled=yes and syslog_enabled=no (default)
    • log_stderror=no - stderror_enabled=no and syslog_enabled=yes.

Core Variables

Added lines 42-45:

Core Variables

  • example
Deleted lines 55-61:
  • the output of the list_blacklists rules have changed to improve readability:
    • owner - now a string
    • expire - indicates the number of seconds until the rule expires
    • proto - printed as string protocol, or "any"

Statistics migration

Added lines 58-61:

Statistics migration

  • example
Deleted lines 64-78:
  • The flags of the b2b_bridge() function have been renamed as following:
    • n to notify
    • f to rollback-failed
    • t[nn] to max_duration=[int].
  • The flags of the b2b_init_request() function have been renamed as following:
    • a to transparent-auth
    • p to preserve-to
    • t[nn] to setup-timeout=[nn]
  • The init_sdp_body and init_sdp_ctype parameters of the b2b_init_request() function have been dropped.
  • The use_init_sdp module parameter has been dropped.

CFGUTILS module

  • the 'ts_usec_delta()' 5th parameter has changed

CGRateS module

Deleted lines 66-83:

DIALOG module

  • The val parameter of store_dlg_value() is now a variable.
  • the first parameter, idx of the set_dlg_flag(), test_and_set_dlg_flag(), reset_dlg_flag(), is_dlg_flag_set() functions is now a static string.
  • The $DLG_flags variable now returns a list of flag names separted by space instead of a single integer value.

MID_REGISTRAR module

  • Check the module docs for the flags parameters of the mid_registrar_save() and mid_registrar_lookup() functions for the mapping between the old and new flag names.

NATHELPER module

  • Check the module docs for the flags parameters of the fix_nated_sdp() and nat_uac_test() functions for the mapping between the old and new flag names.

REGISTRAR module

  • Check the module docs for the flags parameters of the save() and lookup() functions for the mapping between the old and new flag names.

TM module

  • Check the module docs for the flags parameter of the t_relay() function for the mapping between the old and new flag names.
Changed line 70 from:
  • NEW package available in the repos: opensips-auth-modules, containing both the auth and uac_auth modules, mainly due to their extra dependency on a TLS library to be present on the system (e.g. OpenSSL or WolfSSL)
to:
May 17, 2023, at 01:02 AM by rvlad_patrascu -
Changed lines 40-44 from:
  • example
to:
  • log_facility has been deprecated and replaced with syslog_facility.
  • log_name has been deprecated and replaced with syslog_name.
  • log_stderror has been deprecated and is now equivalent with setting the new stderror_enabled and syslog_enabled parameters as following:
    • log_stderror=yes - stderror_enabled=yes and syslog_enabled=no (default)
    • log_stderror=no - stderror_enabled=no and syslog_enabled=yes.
May 15, 2023, at 01:49 PM by liviu -
Changed line 106 from:
  • NEW package available in the repos: opensips-auth-modules, containing both the auth and uac_auth modules, mainly due to their extra dependency on a TLS library to be present on the system (e.g. OpenSSL or WolfSSL)
to:
  • NEW package available in the repos: opensips-auth-modules, containing both the auth and uac_auth modules, mainly due to their extra dependency on a TLS library to be present on the system (e.g. OpenSSL or WolfSSL)
May 15, 2023, at 01:49 PM by liviu -
Changed line 106 from:
  • NEW package available in the repos: opensips-auth-modules, containing both the auth and uac_auth modules, mainly due to their extra dependency on a TLS library (e.g. OpenSSL or WolfSSL)
to:
  • NEW package available in the repos: opensips-auth-modules, containing both the auth and uac_auth modules, mainly due to their extra dependency on a TLS library to be present on the system (e.g. OpenSSL or WolfSSL)
May 15, 2023, at 01:48 PM by liviu -
Changed line 106 from:
  • the auth and uac_auth module are now part of a new package, opensips-auth-modules, mainly due to their extra dependency on a TLS library (e.g. OpenSSL or WolfSSL)
to:
  • NEW package available in the repos: opensips-auth-modules, containing both the auth and uac_auth modules, mainly due to their extra dependency on a TLS library (e.g. OpenSSL or WolfSSL)
May 15, 2023, at 01:47 PM by liviu -
Changed lines 101-106 from:
  • Check the module docs for the flags parameter of the t_relay() function for the mapping between the old and new flag names.
to:
  • Check the module docs for the flags parameter of the t_relay() function for the mapping between the old and new flag names.

Packaging migration

AUTH modules

  • the auth and uac_auth module are now part of a new package, opensips-auth-modules, mainly due to their extra dependency on a TLS library (e.g. OpenSSL or WolfSSL)
April 28, 2023, at 04:44 PM by rvlad_patrascu -
Changed lines 88-101 from:
  • The $DLG_flags variable now returns a list of flag names separted by space instead of a single integer value.
to:
  • The $DLG_flags variable now returns a list of flag names separted by space instead of a single integer value.

MID_REGISTRAR module

  • Check the module docs for the flags parameters of the mid_registrar_save() and mid_registrar_lookup() functions for the mapping between the old and new flag names.

NATHELPER module

  • Check the module docs for the flags parameters of the fix_nated_sdp() and nat_uac_test() functions for the mapping between the old and new flag names.

REGISTRAR module

  • Check the module docs for the flags parameters of the save() and lookup() functions for the mapping between the old and new flag names.

TM module

  • Check the module docs for the flags parameter of the t_relay() function for the mapping between the old and new flag names.
April 28, 2023, at 03:41 PM by rvlad_patrascu -
Changed line 88 from:
  • The $DLG_flags variable now returns a list of flag names separted by space instead of a single integer value).
to:
  • The $DLG_flags variable now returns a list of flag names separted by space instead of a single integer value.
April 28, 2023, at 03:35 PM by rvlad_patrascu -
Changed lines 86-88 from:
  • The val parameter of store_dlg_value() is now a variable.
to:
  • The val parameter of store_dlg_value() is now a variable.
  • the first parameter, idx of the set_dlg_flag(), test_and_set_dlg_flag(), reset_dlg_flag(), is_dlg_flag_set() functions is now a static string.
  • The $DLG_flags variable now returns a list of flag names separted by space instead of a single integer value).
April 28, 2023, at 03:22 PM by rvlad_patrascu -
Changed lines 83-86 from:
  • example
to:
  • example

DIALOG module

  • The val parameter of store_dlg_value() is now a variable.
April 27, 2023, at 06:29 PM by rvlad_patrascu -
Changed line 68 from:
  • The flags of the b2b_bridge_retry() function have been renamed as following:
to:
  • The flags of the b2b_bridge() function have been renamed as following:
Changed line 72 from:
  • The flags of the b2b_bridge_retry() function have been renamed as following:
to:
  • The flags of the b2b_init_request() function have been renamed as following:
Added lines 76-77:
  • The init_sdp_body and init_sdp_ctype parameters of the b2b_init_request() function have been dropped.
  • The use_init_sdp module parameter has been dropped.
April 27, 2023, at 06:22 PM by rvlad_patrascu -
Added lines 66-75:

B2B_LOGIC module

  • The flags of the b2b_bridge_retry() function have been renamed as following:
    • n to notify
    • f to rollback-failed
    • t[nn] to max_duration=[int].
  • The flags of the b2b_bridge_retry() function have been renamed as following:
    • a to transparent-auth
    • p to preserve-to
    • t[nn] to setup-timeout=[nn]
April 20, 2023, at 01:08 PM by liviu -
Added lines 67-68:

CFGUTILS module

  • the 'ts_usec_delta()' 5th parameter has changed
October 28, 2022, at 04:59 PM by razvancrainea -
Changed line 56 from:
  • the output of the https://www.opensips.org/Documentation/Interface-CoreMI-3-4#list_blacklists rules have changed to improve readability:
to:
  • the output of the list_blacklists rules have changed to improve readability:
October 28, 2022, at 04:43 PM by razvancrainea -
Changed lines 56-59 from:
  • example
to:
  • the output of the https://www.opensips.org/Documentation/Interface-CoreMI-3-4#list_blacklists rules have changed to improve readability:
    • owner - now a string
    • expire - indicates the number of seconds until the rule expires
    • proto - printed as string protocol, or "any"
May 18, 2022, at 04:14 PM by liviu -
Added lines 1-66:
Documentation -> Migration -> Migration from 3.3.x to 3.4.0

This page has been visited 479 times. (:toc-float Table of Contents:)


This section is meant to provide useful help in migrating your OpenSIPS installations from the 3.3.0 version to 3.4.0.

You can find the all the new additions in the 3.4.0 release compiled under this page. The ChangeLog may help your understanding of the migration / update process.

Make sure you don't carry a left-over Makefile.conf file in your OpenSIPS source tree if migrating to a new branch! This configuration file, generated by make menuconfig, is usually not compatible with the one of a previous major release!


DB migration

You can migrate your 3.3.x MySQL DB to the 3.4.x format using the opensips-cli tool :

   # opensips-cli -x database migrate 3.3_to_3.4 opensips_3_3 opensips_3_4

where :

  • opensips_3_3 is the existing DB name corresponding to version 3.3.x format
  • opensips_3_4 is the DB name to be created for 3.4.x format

See the opensips-cli documentation for more details.

NOTE:

  • the old database will not be deleted, altered or changed - it will not be touched at all
  • new database will be created and data from old DB will be imported into it

(:toc-back Back to Table of Contents:)


Script migration

The following is the full list of backwards-incompatible syntax or functional changes in the OpenSIPS configuration script:

  • example

Global Parameters

  • example

Core Variables

  • example

Core keywords

  • example

Core functions

  • example

Core MI commands

  • example

Statistics migration

  • example

Module migration

CGRateS module

  • example

Page last modified on March 10, 2026, at 07:08 PM