国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

FreeSWITCH添加自定義endpoint之a(chǎn)pi及app開發(fā)

這篇具有很好參考價(jià)值的文章主要介紹了FreeSWITCH添加自定義endpoint之a(chǎn)pi及app開發(fā)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

操作系統(tǒng) :CentOS 7.6_x64

FreeSWITCH版本 :1.10.9

之前寫過FreeSWITCH添加自定義endpoint的文章,今天整理下api及app開發(fā)的筆記。歷史文章可參考如下鏈接:

FreeSWITCH添加自定義endpoint
FreeSWITCH添加自定義endpoint之媒體交互

一、常用函數(shù)介紹

這里列舉下開發(fā)過程中常用的函數(shù)。

1、根據(jù)uuid查詢session

使用switch_core_session_locate宏進(jìn)行查詢。

定義如下:

#define switch_core_session_locate(uuid_str) switch_core_session_perform_locate(uuid_str, FILE, SWITCH_FUNC, LINE)

示例如下:

switch_core_session_t *session;
if ((session = switch_core_session_locate(uuid))) {
switch_channel_t *tchannel = switch_core_session_get_channel(session);
val = switch_channel_get_variable(tchannel, varname);
switch_core_session_rwunlock(session);
}

查詢session后,需要使用switch_core_session_rwunlock函數(shù)釋放鎖。

2、獲取session的uuid

使用 switch_core_session_get_uuid 函數(shù)根據(jù)session查詢uuid。定義如下:

SWITCH_DECLARE(char *) switch_core_session_get_uuid(_In_ switch_core_session_t *session);

示例如下:

const char *uuid = switch_core_session_get_uuid(session);

3、根據(jù)session獲取channel

?使用 switch_core_session_get_channel 函數(shù)根據(jù)session查詢channel。定義如下:
_Ret_ SWITCH_DECLARE(switch_channel_t *) switch_core_session_get_channel(_In_ switch_core_session_t *session);

示例如下:

switch_channel_t *tchannel = switch_core_session_get_channel(session);

4、channel操作

  • switch_channel_set_name

  設(shè)置通道名稱,通常以 endpoint 類型作為前綴,比如"sofia/1001"、"rtc/1002"等。

  • switch_channel_get_name

  獲取通道名稱。

  • switch_channel_set_variable

  設(shè)置通道變量的值。

  • switch_channel_get_variable

  獲取通道變量的值。

  • switch_channel_set_flag

  設(shè)置channel的標(biāo)記

  • switch_channel_ready

  判斷channel是否就緒

  • switch_channel_set_caller_profile

  設(shè)置profile屬性


更多內(nèi)容channel操作可參考 switch_channel.h 文件。

二、查看已有api及app

使用 show modules 顯示所有api、app及mod對應(yīng)關(guān)系。

效果如下:

FreeSWITCH添加自定義endpoint之a(chǎn)pi及app開發(fā)

?如需查看單個(gè)模塊包含的api及app,可以在后面加上模塊名稱,比如:

show modules mod_db

FreeSWITCH添加自定義endpoint之a(chǎn)pi及app開發(fā)

三、新增api命令

通過SWITCH_STANDARD_API進(jìn)行添加。

比如添加如下命令:

ctest_update_token <uuid> <token>

示例代碼如下:

/* <uuid> <token> */
SWITCH_STANDARD_API(ctest_update_token_function)
{
    char *argv[3];
    char *mydata;
    char *uuid, *token;

    if (zstr(cmd)) {
        stream->write_function(stream, "-ERR Parameter missing\n");
        return SWITCH_STATUS_SUCCESS;
    }
    if (!(mydata = strdup(cmd))) {
        return SWITCH_STATUS_FALSE;
    }

    if (!switch_separate_string(mydata, ' ', argv, (sizeof(argv) / sizeof(argv[0]))) || !argv[0]) {
        goto end;
    }

    uuid = argv[0];
    token = argv[1];

    if (zstr(uuid) || zstr(token)) {
        goto end;
    }

    switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO,"uuid : %s , token : %s\n",uuid,token); 

end:
    switch_safe_free(mydata);
    return SWITCH_STATUS_SUCCESS;
}

在模塊加載函數(shù)(mod_ctest_load)添加入口:

switch_api_interface_t *api_interface;

SWITCH_ADD_API(api_interface, "ctest_update_token", "update ctest channel token", ctest_update_token_function,"<uuid> <token>");

設(shè)置自動填充uuid:

switch_console_set_complete("add ctest_update_token ::console::list_uuid");

FreeSWITCH添加自定義endpoint之a(chǎn)pi及app開發(fā)

?運(yùn)行效果如下:

FreeSWITCH添加自定義endpoint之a(chǎn)pi及app開發(fā)

四、新增app命令

通過 SWITCH_STANDARD_APP 添加,這里就不詳細(xì)描述了,具體看下?echo 這個(gè)app:

mod/applications/mod_dptools/mod_dptools.c :2317

SWITCH_STANDARD_APP(echo_function)
{
    switch_ivr_session_echo(session, NULL);
}

好,就這么多了,希望對你有幫助。文章來源地址http://www.zghlxwxcb.cn/news/detail-711152.html

到了這里,關(guān)于FreeSWITCH添加自定義endpoint之a(chǎn)pi及app開發(fā)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 全新API管理系統(tǒng)源碼 /PHP程序源碼 /自定義添加接口+自帶模板

    全新API管理系統(tǒng)源碼 /PHP程序源碼 /自定義添加接口+自帶模板

    源碼介紹: 這是一個(gè)全新API管理系統(tǒng)源碼、PHP程序源碼,它不僅自定義添加接口,還附帶兩個(gè)模板?,摤揂PI管理系統(tǒng)源碼附帶兩套模板。 環(huán)境要求 1、PHP版本要求高于5.6且低于8.0,已測試通過的版本為7.4。 2、需要安裝PHPSG11加密擴(kuò)展。 3、已測試:寶塔/主機(jī)親測成功搭建!

    2024年01月20日
    瀏覽(19)
  • FreeSWITCH添加g729編碼及pcap音頻提取

    FreeSWITCH添加g729編碼及pcap音頻提取

    操作系統(tǒng) : debian 11 (bullseye,docker)、Windows10_x64 FreeSWITCH版本 :1.10.9 Docker版本:23.0.6 Python 版本 ?: ?3.9.2 ? 日常工作中,有時(shí)候會遇到g729編碼的相關(guān)內(nèi)容,但FreeSWITCH默認(rèn)是不支持g729編碼轉(zhuǎn)碼的,今天記錄下使用開源的 bcg729 進(jìn)行g(shù)729轉(zhuǎn)碼的過程(本文僅作技術(shù)研究,商業(yè)使用

    2024年02月16日
    瀏覽(23)
  • Android 14.0 添加自定義服務(wù),并生成jar給第三方app調(diào)用

    在14.0系統(tǒng)ROM產(chǎn)品定制化開發(fā)中,由于需要新增加自定義的功能,所以要增加自定義服務(wù),而app上層通過調(diào)用自定義服務(wù),來調(diào)用相應(yīng)的功能,所以系統(tǒng)需要先生成jar,然后生成jar 給上層app調(diào)用,接下來就來分析實(shí)現(xiàn)的步驟,然后來實(shí)現(xiàn)相關(guān)的功能 從而來實(shí)現(xiàn)所需要的功能 在

    2024年04月10日
    瀏覽(105)
  • Android 13.0 添加自定義服務(wù),并生成jar給第三方app調(diào)用

    在13.0系統(tǒng)產(chǎn)品定制化開發(fā)中,由于需要新增加自定義的功能,所以要增加自定義服務(wù),而app上層通過調(diào)用自定義服務(wù),來調(diào)用相應(yīng)的功能,所以系統(tǒng)需要先生成jar,然后生成jar 給上層app調(diào)用,接下來就來分析實(shí)現(xiàn)的步驟,然后來實(shí)現(xiàn)相關(guān)的功能 從而來實(shí)現(xiàn)所需要的功能 添加

    2024年02月05日
    瀏覽(38)
  • 自定義Python版本ESL庫訪問FreeSWITCH

    自定義Python版本ESL庫訪問FreeSWITCH

    環(huán)境:CentOS 7.6_x64 Python版本:3.9.12 FreeSWITCH版本 :1.10.9 ESL庫是FreeSWITCH對外提供的接口,使用起來很方便,但該庫是基于C語言實(shí)現(xiàn)的,Python使用該庫的話需要使用源碼進(jìn)行編譯。 如果使用系統(tǒng)自帶的Python版本進(jìn)行編譯,過程會比較流暢,就不描述了。這里記錄下使用自定義

    2023年04月25日
    瀏覽(16)
  • Android Studio開發(fā)簡易APP添加代辦事項(xiàng)

    創(chuàng)建xml布局頁

    2024年02月15日
    瀏覽(25)
  • 蘋果IOS在Safari瀏覽器中將網(wǎng)頁添加到主屏幕做偽Web App,自定義圖標(biāo),啟動動畫,自定義名稱,全屏應(yīng)用

    蘋果IOS在Safari瀏覽器中將網(wǎng)頁添加到主屏幕做偽Web App,自定義圖標(biāo),啟動動畫,自定義名稱,全屏應(yīng)用

    在ios中我們可以使用Safari瀏覽自帶的將網(wǎng)頁添加到主屏幕上,讓我們的web頁面看起來像一個(gè)本地應(yīng)用程序一樣,通過桌面APP圖標(biāo)一打開,直接全屏展示,就像在APP中效果一樣,完全體會不到你是在瀏覽器中。 通過點(diǎn)擊桌面上的圖標(biāo),直接打開全屏頁面:(這圖標(biāo)是我用CSDN的圖標(biāo)

    2024年02月06日
    瀏覽(25)
  • 蘋果IOS在Safari瀏覽器中將網(wǎng)頁添加到主屏幕做偽Web App,自定義圖標(biāo),啟動動畫,自定義名稱,全屏應(yīng)用pwa

    蘋果IOS在Safari瀏覽器中將網(wǎng)頁添加到主屏幕做偽Web App,自定義圖標(biāo),啟動動畫,自定義名稱,全屏應(yīng)用pwa

    在ios中我們可以使用Safari瀏覽自帶的將網(wǎng)頁添加到主屏幕上,讓我們的web頁面看起來像一個(gè)本地應(yīng)用程序一樣,通過桌面APP圖標(biāo)一打開,直接全屏展示,就像在APP中效果一樣,完全體會不到你是在瀏覽器中。 通過點(diǎn)擊桌面上的圖標(biāo),直接打開全屏頁面:(這圖標(biāo)是我用CSDN的圖標(biāo)

    2024年02月09日
    瀏覽(22)
  • k8s自定義Endpoint實(shí)現(xiàn)內(nèi)部pod訪問外部應(yīng)用

    k8s自定義Endpoint實(shí)現(xiàn)內(nèi)部pod訪問外部應(yīng)用

    endpoint除了可以暴露pod的IP和端口還可以代理到外部的ip和端口 使用場景 公司業(yè)務(wù)還還沒有完成上云, 一部分云原生的,一部分是實(shí)體的 業(yè)務(wù)上云期間逐步實(shí)現(xiàn)上云,保證各個(gè)模塊之間的解耦性 比如使用云數(shù)據(jù)庫或者實(shí)體數(shù)據(jù)庫服務(wù)器啥的,因?yàn)橄駭?shù)據(jù)庫實(shí)現(xiàn)容器化的話在

    2024年01月25日
    瀏覽(26)
  • 微信小程序開發(fā)記錄3——app.json無法添加注釋

    微信小程序開發(fā)記錄3——app.json無法添加注釋

    想在app.json中添加注釋用來備注一下每個(gè)代碼的意義的,結(jié)果發(fā)現(xiàn)報(bào)錯(cuò)了,無法給代碼添加注釋,報(bào)錯(cuò)為:Comments are not permitted in JSON.(521) 因?yàn)槟J(rèn)的json文件是無法添加注釋的,需要修改json文件的語言類型。 在開發(fā)界面右下角,點(diǎn)擊JSON,在彈出的選擇框中,將語言類型修改

    2024年02月15日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包