- Mitglied seit
- 25 Jul 2006
- Beiträge
- 69
- Punkte für Reaktionen
- 0
- Punkte
- 0
hallo wieder,
ich hab den C Code soweit, dass er sich mit dem Asterisk Server verbindet und auch der Asterisk antwortet.
Hier mal der C Code:
diesen Code rufe ich mit der IP des Asterisk Servers auf und erhalte folgende Nachricht:
dort mache ich folgendes, ganz nach dieser Webseite
und schließe dieses Befehlspaket mit einem doppelten Return ab.
Bei dem Asterisk Server tut sich garnichts, warum?
Erst wenn ich meinen C-Client schließe, sagt mir der Asterisk am anderen Ende:
== Connect attempt from '192.168.1.4' unable to authenticate
In der manager.conf des Asterisk Servers habe ich:
enabled = yes
webenabled = yes
read = system,call,log usw.
write = system,call,log usw.
Der Asterisk Server ist ein frisches Debian mit selbst compiliertem Asterisk 1.4.21
Der Client läuft auf einem aktuellen Ubuntu 8
Kann mir einer sagen was ich falsch mache, wo mein Denkfehler liegt oder was ich beim Asterisk vergessen habe?
Liegt es am C-Code, hoffe ich sehr, dass hier auch Kenner des C sind.
... würde mich schon sehr freuen wenn mir jemand auf den nächsten Sprung hilft!!!
so, dann hab ich es auch mal so wie es im das-asterisk-buch.de steht versucht, nämlich mit telnet. Da kam dann folgende Ausgabe:
failed to pass IP ACL as 'username'
mfg
ich hab den C Code soweit, dass er sich mit dem Asterisk Server verbindet und auch der Asterisk antwortet.
Hier mal der C Code:
Code:
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define BUF 1024
int main (int argc, char **argv) {
int create_socket;
char *buffer = malloc (BUF);
struct sockaddr_in address;
int size;
if( argc < 2 ){
printf("Usage: %s ServerAdresse\n", *argv);
exit(EXIT_FAILURE);
}
printf ("\e[2J");
if ((create_socket = socket (AF_INET, SOCK_STREAM, 0)) > 0)
printf ("Socket wurde angelegt\n");
address.sin_family = AF_INET;
address.sin_port = htons (5038);
inet_aton (argv[1], &address.sin_addr);
if (connect ( create_socket,
(struct sockaddr *) &address,
sizeof (address)) == 0)
printf ("Verbindung mit dem Server (%s) hergestellt\n",
inet_ntoa (address.sin_addr));
do {
size = recv(create_socket, buffer, BUF-1, 0);
if( size > 0)
buffer[size] = '\0';
printf ("Nachricht erhalten: %s\n", buffer);
if (strcmp (buffer, "quit\n")) {
printf ("Nachricht zum Versenden: ");
fgets (buffer, BUF, stdin);
send(create_socket, buffer, strlen (buffer), 0);
}
} while (strcmp (buffer, "quit\n") != 0);
close (create_socket);
return EXIT_SUCCESS;
}
diesen Code rufe ich mit der IP des Asterisk Servers auf und erhalte folgende Nachricht:
Code:
Socket wurde angelegt
Verbindung mit dem Server (192.168.1.7) hergestellt
Nachricht erhalten: Asterisk Call Manager/1.0
Nachricht zum Versenden:
dort mache ich folgendes, ganz nach dieser Webseite
Code:
Nachricht zum Versenden: Action: Login
ActionID: 1
Username: chebrise
Secret: passwort
Bei dem Asterisk Server tut sich garnichts, warum?
Erst wenn ich meinen C-Client schließe, sagt mir der Asterisk am anderen Ende:
== Connect attempt from '192.168.1.4' unable to authenticate
In der manager.conf des Asterisk Servers habe ich:
enabled = yes
webenabled = yes
read = system,call,log usw.
write = system,call,log usw.
Der Asterisk Server ist ein frisches Debian mit selbst compiliertem Asterisk 1.4.21
Der Client läuft auf einem aktuellen Ubuntu 8
Kann mir einer sagen was ich falsch mache, wo mein Denkfehler liegt oder was ich beim Asterisk vergessen habe?
Liegt es am C-Code, hoffe ich sehr, dass hier auch Kenner des C sind.
... würde mich schon sehr freuen wenn mir jemand auf den nächsten Sprung hilft!!!
so, dann hab ich es auch mal so wie es im das-asterisk-buch.de steht versucht, nämlich mit telnet. Da kam dann folgende Ausgabe:
failed to pass IP ACL as 'username'
mfg
Zuletzt bearbeitet: