代码之家  ›  专栏  ›  技术社区  ›  abcd gef

将Linphone与asterisk集成以实现推送通知

  •  0
  • abcd gef  · 技术社区  · 7 年前

    我已安装 asterisk server 并汇编了最新的 linphone iOS源代码。 现在一切都很好,没有背景和锁定手机屏幕,通话。

    当应用程序关闭或iPhone屏幕锁定时,我无法接听其他人的电话 linphone电话 (从playstore下载)。

    我两个都注册了 linphone电话 到星号服务器,使用 SIP .

    我还创建了 development/distribute certificates, APNS, VOIP 推送apple帐户。

    但我仍然无法接听iOS应用程序的呼叫, 所以我的问题是:

    1. 我需要使用任何支持推送的代理吗 flexisip, Opensips, kamailio 或者我可以 Asterisk Linphone 当应用程序关闭或锁定屏幕时,是否有其他方式获得通知?

    还必须使用任何第三方服务器将通知推送到 wakeup the app, like pusher, onesignal ?

    谢谢

    4 回复  |  直到 7 年前
        1
  •  2
  •   arheops    7 年前

    您可以使用flexisip。It处于半工作状态,无文档

    您可以使用星号或kamailio,但您应该通过外部脚本和拨号计划来推动自己。

        2
  •  1
  •   Syco    6 年前

    我也在考虑linphone和flexisip,但这对我不起作用。 我想在拨分机之前,我可以放弃flexisp,直接从星号按下。 我有一个agi脚本,从联系人那里获取pn tok,然后进行推送:

    $serverKey = "   long string coming from firebase   ";
    $notif = ['title' => 'You have a call', 'body' => "Call from $CLI"];
    $headers = [CURLOPT_HTTPHEADER => ["Authorization: key=$serverKey", 'Content-Type: application/json']];
    $pjsipContact = ast_get_var("PJSIP_AOR(1000,contact)");
    if(!empty($pjsipContact)) {
      $pjsipUri = ast_get_var("PJSIP_CONTACT($pjsipContact,uri)");
      preg_match('/pn-tok=([^;]+)/', $pjsipUri, $toArr);
      if (count($toArr) == 2) {
        log_cli("send noti to {$toArr[1]}");
        curlGetPage('https://fcm.googleapis.com/fcm/send', json_encode(['to' => $toArr[1], 'notification' => $notif]), $headers, 443, 'POST', TRUE);
      }
    }
    

    使用此agi,手机会接收推送并在通知中显示,但linphone不会恢复活力。 推送通知是否有特定的格式来真正唤醒linphone并使其重新注册?

    谢谢

        3
  •  0
  •   Alain Turbide    6 年前

    您当然可以在通话前使用星号推送自己编译的Linphone应用程序将其唤醒。要点是使用DB dialplan功能从客户联系信息中获取推送令牌,并将其传递给AGI脚本,然后AGI脚本将使用该令牌启动推送并唤醒设备。您需要先添加等待延迟以允许手机重新注册,然后才能对分机进行拨号()。使用Android时,您需要使用“数据”消息类型,而不是“通知”类型,否则手机不会唤醒,只显示通知。有关如何实现这一目标的详细信息,请参阅本文。注意,这篇文章讨论了Android,但可以通过修改推送来轻松适应IOS。php脚本。

    https://community.asterisk.org/t/interest-in-implementing-sip-push-notification/75563/19

        4
  •  0
  •   sreekanth balu    4 年前

    enter image description here 对于voip呼叫,移动客户端必须接收推送通知,然后向SIP服务器注册以接收呼叫邀请。因此,任何软交换或PBX都可以使用此机制来启动推送通知,并等待脱机客户端联机并发送邀请请求。所以PBX在这里扮演着重要的角色,在客户端出现在线后等待并转发邀请。

    您可以从以下位置使用推送脚本 github repository .