2017-05-03 7 views
0

Ich denke über das Schreiben einer Anruf-Screening-Anwendung mit der Twilio API.Können Telefonanrufe Metadaten wie "weitergeleitet von" haben?

Wenn ein Anruf eingeht, würde meine Anwendung basierend auf verschiedenen Regeln entscheiden, ob mein Telefon klingelt oder der Anrufer an Voicemail gesendet wird.

So Anrufe wie fließen würde:

         ┌─────────┐ 
            ┌─▶│Voicemail│ 
┌──────┐ ┌─────────────┐ ┌──────┐ │ └─────────┘ 
│Caller│─▶│Twilio Number│─▶│My App│─┤ 
└──────┘ └─────────────┘ └──────┘ │ ┌─────────┐ 
          depending└─▶│My Phone │ 
          on rules... └─────────┘ 

Idealerweise konnte ich diese beiden Dinge tun:

  1. Mein Telefon nur Ringe für Anrufe, die
  2. durch meine App weitergeleitet wurden
  3. Wenn mein Telefon klingelt, sehe ich die ursprünglichen Anrufer Anrufer-ID

Für # 1, könnte ich meinen Mobilfunkanbieter bitten, alle anderen Anrufe zu blockieren, oder vielleicht Android-Code schreiben, um auf meinem Telefon zu laufen, aber auf jeden Fall müsste ich wissen, "das kam von meiner App. "

Sind beide Dinge möglich? ZB kann ein Telefonanruf metadata haben, die sagen, von wo es weitergeleitet wurde, oder ist Anrufer Identifikation die einzige Information, die ich erhalten kann?

Kann ich die ursprüngliche Anrufer-ID und die Tatsache, dass der Anruf über meine App kam, weitergeben?

Antwort

0

Twilio Entwickler Evangelist hier.

Ich werde mit # 2 beginnen, wie das am einfachsten ist. Das Standardverhalten von <Dial>, mit dem Sie Anrufe an eine Twilio-Nummer auf Ihre eigene Nummer weiterleiten, besteht darin, die Anrufer-ID der ursprünglichen Anrufer-ID zuzuordnen. Du solltest das also schon in Twilio sehen.

Für # 1, gibt es keine Möglichkeit, Metadaten im Rahmen eines Anrufs mit Twilio zu senden und dann auf die Metadaten auf der Telefonebene zuzugreifen, um die Anrufe zu blockieren.

Ich weiß nicht, ob Sie dies auf Träger-Ebene tun könnten. Ich würde vermuten, dass Twilio bestimmte SIP-Header sendet, nach denen der Netzbetreiber suchen könnte, aber dazu habe ich keine weiteren Informationen.

Sie könnten sich mit Twilio zumindest darüber informieren, dass ein Anruf von Ihrer App kommt und nicht direkt zu Ihrer Nummer. Sie können verwenden, was ein "whisper" genannt wird. Dadurch können Sie sich selbst eine Nachricht geben, sagen Sie "Dies ist ein Anruf von Ihrer App", bevor Sie den Anruf verbinden. Sie können dies erreichen, indem Sie den Anruf an Ihre Nummer weiterleiten, indem Sie <Dial> mit einer <Number> noun and setting a url attribute verwenden. Die url sollte auf einen anderen Endpunkt zeigen, der TwiML mit Ihrer Nachricht zurückgibt, Sie können <Say> dafür verwenden.

Lassen Sie mich wissen, ob das überhaupt hilft.

+0

Danke für Ihre Antwort! Das "Flüstern" ist hilfreich, aber nicht ideal, weil das Telefon immer noch klingelt, und ich muss noch abholen, bevor ich weiß, dass es ein Anruf ist, den ich nicht will. Gibt es eine andere Möglichkeit, Telefonanrufe zu senden, die das Anhängen einiger Metadaten ermöglichen würden - z. B. das Senden eines VOIP-Anrufs an eine benutzerdefinierte Android-App, die den eingehenden Anruf untersuchen und entscheiden könnte, ob er klingeln soll? –

Verwandte Themen