diff --git a/indications.c b/indications.c
index ccfd04e82b19a5fd3c8a0a54970e81a684378a06..62500a790448fd3a3249e976eddb9c7e0450b22a 100755
--- a/indications.c
+++ b/indications.c
@@ -143,6 +143,7 @@ int ast_playtones_start(struct ast_channel *chan, int vol, const char *playlst,
 	char *s, *data = ast_strdupa(playlst); /* cute */
 	struct playtones_def d = { vol, -1, 0, 1, NULL};
 	char *stringp=NULL;
+	char *separator;
 	if (!data)
 		return -1;
 	if (vol < 1)
@@ -151,7 +152,13 @@ int ast_playtones_start(struct ast_channel *chan, int vol, const char *playlst,
 	d.interruptible = interruptible;
 	
 	stringp=data;
-	s = strsep(&stringp,",");
+	/* the stringp/data is not null here */
+	/* check if the data is separated with '|' or with ',' by default */
+	if (strchr(stringp,'|'))
+		separator = "|";
+	else
+		separator = ",";
+	s = strsep(&stringp,separator);
         while(s && *s) {
 		int freq1, freq2, time;
 
@@ -184,7 +191,7 @@ int ast_playtones_start(struct ast_channel *chan, int vol, const char *playlst,
 		d.items[d.nitems].duration = time;
 		d.nitems++;
 
-		s = strsep(&stringp,",");
+		s = strsep(&stringp,separator);
 	}
 
 	if (ast_activate_generator(chan, &playtones, &d)) {