Realtime: XXX/YYY geht nicht

speedy1980

Mitglied
Mitglied seit
13 Okt 2004
Beiträge
592
Punkte für Reaktionen
0
Punkte
0
Hallo,
Ich hab Teile meines Wählplans in der Datenbank, angebunden über Realtime/ MySQL. Wenn ich jetzt anhand des Anrufers den Ruf abarbeiten möchte, so hab ich das bisher in der extensions.conf über
exten => XXX/Anrufer, ...
gemacht. Über die Datenbank scheint das so nicht zu gehen. Ist da ein anderes Trennzeichen nötig? Die Kommas gehen in Realtime ja auch nicht, dafür muß man ja | nehmen.
 
Bei mir funktioniert das mit dem xx/yy problemlos. Welche Probleme hast Du da genau ?
 
Das matchen der CallerID ist AFAIK mit Realtime (noch) nicht moeglich.
 
@betateilchen: Du hast also solche Einträge in der Datenbank? Welche genaue Asterisk Version hast Du?

@Maik: Gibts da schon einen Eintrag auf dem Bugtracker? Oder weißt Du, ob das Matchen der CallerID mit Realtime in Zukunft geplant ist? Eigentlich sollte das doch keine große Sache sein ...
 
@betateilchen: Du hast also solche Einträge in der Datenbank? Welche genaue Asterisk Version hast Du?

Das geht bei mir schon eine ganze Weile völlig problemlos. Ich hatte mir nie Gedanken darüber gemacht, ob es überhaupt funktioniert. Einfach in die Datenbank eingetragen und es lief.

Mein Asterisk ist aus dem CVS gebaut. Letzte gezogene Version 01.06.2005
 
das is ja echt komisch
ich hab in der pbx_realtime.c gefunden

Code:
00066 /* Realtime switch looks up extensions in the supplied realtime table.
00067 
00068    [context@][realtimetable][/options]
00069 
00070    If the realtimetable is omitted it is assumed to be "extensions".  If no context is 
00071    specified the context is assumed to be whatever is the container.
00072 
00073    The realtime table should have entries for context,exten,priority,app,args
00074    
00075    The realtime table currently does not support callerid fields.
00076 
00077 */

und bei mir geht es auch nicht

ich hab asterisk 1.2.4 bristuff k
 
das is echt wiedersprüchlich von betateilchen:-/

also bei mir gehts nicht

aber ich würde es gerne machen
 
also nach einem tag suche im source code hab ich die passende stelle gefunden:)
und ich hab es etwas geändert so das jetzt wenn in realtime callerid hinterlegt ist genau diese nummer berücksichtigt wird.
also quasie
exten => nummer/nummer,machwas
um pattern matching zu machen müsste man noch etwas mehr ändern
falls es jemanden interessiert kann ich die änderungen hier posten
 
in der pbx_realtime.c im verzeichniß pbx
fängt es ziemlich am anfang an
Code:
			table = "extensions"; \
		var = realtime_switch_common(table, cxt, exten, priority, mode, callerid); \
	} else \
		res = -1; 

static struct ast_variable *realtime_switch_common(const char *table, const char *context, const char *exten, int priority, int mode, const char *callerid)
{
	struct ast_variable *var;
	struct ast_config *cfg;
	char pri[20];
	char *ematch;
	char rexten[AST_MAX_EXTENSION + 20]="";
	int match;
	snprintf(pri, sizeof(pri), "%d", priority);
	switch(mode) {
	case MODE_MATCHMORE:
		ematch = "exten LIKE";
		snprintf(rexten, sizeof(rexten), "%s_%%", exten);
		break;
	case MODE_CANMATCH:
		ematch = "exten LIKE";
		snprintf(rexten, sizeof(rexten), "%s%%", exten);
		break;
	case MODE_MATCH:
	default:
		ematch = "exten";
		strncpy(rexten, exten, sizeof(rexten) - 1);
	}
	//callerid
	var = ast_load_realtime(table, ematch, rexten, "context", context, "priority", pri, "callerid", callerid, NULL);//gucken ob es einen eintrag mit der callerid gibt

	if (!var) //ansonsten einträge ohne callerid betrachten
	var = ast_load_realtime(table, ematch, rexten, "context", context, "priority", pri, "callerid", "", NULL);
	
	if (!var) {
		cfg = ast_load_realtime_multientry(table, "exten LIKE", "\\_%", "context", context, "priority", pri, "callerid", "", NULL);
 
Wie jetzt? Die Änderung ist so einfach? Es ist verwunderlich, dass das so noch nicht im originalen Asterisk drin ist. Wenns wirklich so funktioniert sollten wir auf der Asterisk-Mailingliste nachfragen ... das sollte integriert werden. Kann jemand weiteres das Funktionieren mit der Änderung bestätigen? Ich werde auch mal die nächsten Tage testen wenn ich es schaffe.
 
naja die änderung macht ja nicht alles was man sich vieleicht erhofft;)
sie macht im moment nur 233244/342432
_X./23324323 läßt sich noch einfach erreichen aber das problem ist irgendeinenummer/_X32. sowas - pattern matching bei der callerid...
ok es gibt ne funktion die das für einen macht aber man brauch erstmal aus der struktur die callerid felder um sie dann auszuwerten
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.