summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apppbx.cpp9
-rw-r--r--extension.c6
-rw-r--r--genext.c2
-rw-r--r--joinpbx.cpp8
4 files changed, 18 insertions, 7 deletions
diff --git a/apppbx.cpp b/apppbx.cpp
index b7a8357..6641b31 100644
--- a/apppbx.cpp
+++ b/apppbx.cpp
@@ -3443,10 +3443,13 @@ void EndpointAppPBX::join_notify(struct port_list *portlist, int message_type, u
/* unhold if */
if (new_state!=NOTIFY_STATE_HOLD && new_state!=NOTIFY_STATE_SUSPEND)
{
- while(portlist)
+ if (!strcmp(e_tone, "hold")) // don't interrupt other tones
{
- set_tone(portlist, "");
- portlist = portlist->next;
+ while(portlist)
+ {
+ set_tone(portlist, "");
+ portlist = portlist->next;
+ }
}
portlist = ea_endpoint->ep_portlist;
e_hold = 0;
diff --git a/extension.c b/extension.c
index e19ec2a..f498438 100644
--- a/extension.c
+++ b/extension.c
@@ -1026,8 +1026,10 @@ int write_extension(struct extension *ext, char *number)
// fprintf(fp,"# Set up alarm message after prefix is dialed and connection is established\n");
// fprintf(fp,"alarm %s\n\n",ext->alarm);
- fprintf(fp,"# Ports to ring on calls to extension (starting from 1)\n");
- fprintf(fp,"# Seperate ports by using komma. (example: 1,3 would ring incoming calls on\n# port 1 and 3)\n");
+ fprintf(fp,"# Interface(s) to ring on calls to extension (as named in interface.conf)\n");
+ fprintf(fp,"# Seperate multiple interfaces by using komma without spaces\n");
+ fprintf(fp,"# Example: Int would ring on the interface with the name \"Int\"");
+ fprintf(fp,"# Int1,Int2 would ring incoming calls on both interfaces Int1 and Int2.\n");
fprintf(fp,"interfaces %s\n\n",ext->interfaces);
fprintf(fp,"# Call Forward Unconditional (CFU)\n");
diff --git a/genext.c b/genext.c
index cab89ad..447c675 100644
--- a/genext.c
+++ b/genext.c
@@ -63,7 +63,7 @@ int main(int argc, char *argv[])
{
printf("Usage: %s <extension> <interfaces> <callerid>\n\n", argv[0]);
printf("extension: any number for the extension (e.g 200)\n");
- printf("interfaces: internal interface(es) to reach extension (seperated by commas. e.g Int1,Int2)\n");
+ printf("interfaces: internal interface(s) to reach extension (seperated by commas. e.g Int1,Int2)\n");
printf("callerid: normal undefined called is (use what your telco assigned you)\n");
return(0);
}
diff --git a/joinpbx.cpp b/joinpbx.cpp
index 76e547a..d0c8b1d 100644
--- a/joinpbx.cpp
+++ b/joinpbx.cpp
@@ -418,7 +418,7 @@ void JoinPBX::bridge(void)
relation->next->tx_state = notify_state_change(j_serial, relation->next->epoint_id, relation->next->tx_state, relation->rx_state);
} else
/* one member in a join, so we put her on hold */
- if ((relations==1 || numconnect==1) && !j_partyline_jingle)
+ if ((relations==1 || numconnect==1)/* && !j_partyline_jingle*/)
{
PDEBUG(DEBUG_JOIN, "join%d 1 member or only 1 connected, put on hold\n");
relation = j_relation;
@@ -1045,6 +1045,12 @@ void JoinPBX::play_jingle(int in)
struct message *message;
relation = j_relation;
+
+ if (!relation)
+ return;
+ if (!relation->next)
+ return;
+
while(relation)
{
message = message_create(j_serial, relation->epoint_id, JOIN_TO_EPOINT, MESSAGE_TONE);