2016-05-13 2 views
0

Noch ein Problem mit Twilio für mich. Also versuche ich mich mit einem anderen Benutzer mit Parametern zu verbinden. Hier ist mein Code:Twilio iOS-Client nicht übergeben Parameter auf Verbindung

-(void)connect:(CDVInvokedUrlCommand*)command { 
    NSLog(@"The content of dict is%@",[command.arguments objectAtIndex:0]); 

    NSDictionary *dict = [command.arguments objectAtIndex:0]; 

    for(NSString *key in [dict allKeys]) { 
     NSLog(@"%@",key); 
     NSLog(@"%@",[dict objectForKey:key]); 
    } 

    [self.device connect:dict delegate:self]; 
} 

Problem: egal, was ich in NSDictionary habe nichts an den Server übergeben. Ich habe mit der Anzahl der Parameter versucht, nichts wird übergeben. Nicht einmal To Parameter, auf nicht andere, benutzerdefinierte. Es funktioniert für jede andere Plattform, aber nicht für iOS.

Was fehlt mir hier? Laut der Dokumentation sollte es funktionieren, verbinden Methode NSDictionary als Eingabe, -connect:(NSDictionary*)params delegate:(id<TCConnectionDelegate>)delegate, also wo soll ich aussehen?

PS. Dies ist ein weiteres großes Problem, das ich in den letzten Tagen hatte. Ich bekomme genug davon.

Antwort

1

OK, das Problem war, dass ich NSDictionary mit Schlüssel übergeben hatte, der einen ganzzahligen Wert hatte. Die Methode -connect akzeptiert nur <NSString NSString> NSDictionary.

0

Lassen Sie uns das herausfinden. Es ist nicht ganz klar aus Ihrem Codebeispiel, was genau Sie als Argumente übergeben haben, also vergib mir, wenn ich dir etwas vorschlagen, das du vielleicht schon versucht hast.

Was passiert, wenn Sie so etwas versuchen?

NSDictionary *params = @{@"To": "number_to_dial"}; 
_connection = [_phone connect:params delegate:self]; 

Wenn dies nicht funktioniert, können wir sicher sein, dass das Problem in dem Konto, dem Token oder der App selbst liegt.

The iOS sample zeigt, wie die Wählparameter übergeben werden, es liegt jedoch in der Verantwortung des Entwicklers, die richtige ​TwiML10 zu erstellen, die die von Twilio erkannten Wählbefehls-Tags enthält.

Wenn der Aufruf des Server schlägt jedoch ohne Parameter übergeben wird, sollte es eine Twilio CallSid im TCConnectionDelegate.connectionDidConnect: Verfahren zur Verfügung. Wenn das der Fall ist, würde ich vorschlagen contacting support mit diesem Sid und wir können mehr Informationen vom Server graben, um zu sehen, welche Parameter übergeben werden.

Hier ist, wie die CallSid abzurufen:

- (void)connectionDidConnect:(TCConnection *)connection { 
    NSString *callsid = [[connection parameters] objectForKey:@"CallSid"]; 
    ... 
} 

Könnten Sie sehen, wenn Sie in der Lage sind, diese Callback-Methode, um zu sehen genannt werden und versuchen, die CallSid wenn möglich zur Verfügung zu stellen?

+0

Code, den ich gepostet habe, zeigt mir, dass ich ordnungsgemäß NSDictionary gebildet habe und ich gebe es weiter. – McOffsky

+0

'wenn der Anruf Ihren Server trifft, obwohl keine Parameter übergeben wurden' <- das ist genau was passiert. Ich werde die zweiten CIDs für die Anrufe im Twilio-Ticket posten. – McOffsky

+0

https://github.com/jefflinwood/twilio_client_phonegap/blob/master/src/ios/TCPlugin.m Ich habe es getestet (hinzugefügt mehr Protokolle auf meiner lokalen Version), Params übergeben Thet -connect-Methode sind wohl gebildet NSDictionary mit Inhalt, zum Beispiel {"phoneNumber": 103} – McOffsky