diff --git a/channels/chan_brcm.c b/channels/chan_brcm.c
index 7b2f7ae291ddd6295d4aeafc10765a19b0710376..756a8621070a8b5f3c2af7ea54155f06c60be384 100644
--- a/channels/chan_brcm.c
+++ b/channels/chan_brcm.c
@@ -77,7 +77,7 @@ static int brcm_in_conference(const struct brcm_pvt *p);
 static int cwtimeout_cb(const void *data);
 static int cwbeep_cb(const void *data);
 static int r4hanguptimeout_cb(const void *data);
-static void brcm_generate_rtp_packet(struct brcm_subchannel *p, uint8_t *packet_buf, int type, int marker, int dtmf_timestamp);
+static void brcm_generate_rtp_packet(struct brcm_subchannel *p, uint8_t *packet_buf, int type, int marker, int dtmf_timestamp, int seqno);
 static void brcm_interpret_rtcp_packet(struct brcm_subchannel *p, uint8_t *rtcp_frame, uint32_t rtcp_size);
 static int brcm_mute_connection(struct brcm_subchannel *p);
 static int brcm_unmute_connection(struct brcm_subchannel *p);
@@ -1367,7 +1367,7 @@ static int brcm_write(struct ast_channel *ast, struct ast_frame *frame)
 		pvt_lock(sub->parent, "TELCHAN write frame");
 
 		/* generate the rtp header */
-		brcm_generate_rtp_packet(sub, ap->rtp, CN, 0, 0);
+		brcm_generate_rtp_packet(sub, ap->rtp, CN, 0, 0, frame->seqno);
 
 		/* set rtp id sent to endpoint */
 		sub->codec = CN;
@@ -1397,7 +1397,7 @@ static int brcm_write(struct ast_channel *ast, struct ast_frame *frame)
 		pvt_lock(sub->parent, "TELCHAN write frame");
 
 		/* generate the rtp header */
-		brcm_generate_rtp_packet(sub, ap->rtp, map_ast_codec_id_to_rtp(frame->subclass.format), 0, 0);
+		brcm_generate_rtp_packet(sub, ap->rtp, map_ast_codec_id_to_rtp(frame->subclass.format), 0, 0, frame->seqno);
 
 		/* set rtp id sent to endpoint */
 		sub->codec = map_ast_codec_id_to_rtp(frame->subclass.format);
@@ -3069,7 +3069,6 @@ static struct brcm_pvt *brcm_allocate_pvt(void)
 				sub->connection_init = 0;
 				sub->channel_state = ONHOOK;
 				sub->time_stamp = 0;
-				sub->sequence_number = 0;
 				sub->ssrc = 0;
 				sub->codec = -1;
 				sub->parent = tmp;
@@ -3331,7 +3330,6 @@ static void brcm_show_subchannels(struct ast_cli_args *a, struct brcm_pvt *p)
 		ast_cli(a->fd, "  Channel state       : %s\n", state2str(sub->channel_state));
 		ast_cli(a->fd, "  Connection init     : %d\n", sub->connection_init);
 		ast_cli(a->fd, "  Codec used          : %s\n", brcm_get_codec_string(sub->codec));
-		ast_cli(a->fd, "  RTP sequence number : %d\n", sub->sequence_number);
 		ast_cli(a->fd, "  RTP SSRC            : %d\n", sub->ssrc);
 		ast_cli(a->fd, "  RTP timestamp       : %d\n", sub->time_stamp);
 		ast_cli(a->fd, "  CW Timer id         : %d\n", sub->cw_timer_id);
@@ -4093,13 +4091,13 @@ static void ubus_call_answer_rtp_stats(struct ubus_request *req, int type, struc
 
 	sub->rtp_stats.averageFarEndInterarrivalJitter = sub->jitter_count ? (sub->farEndInterrivalJitter / sub->jitter_count) : 0;
 
-	ast_log(LOG_DEBUG, "RTP stats received:\nlocalBurstDensity: %d\nremoteBurstDensity: %d\n"
-			"localBurstDuration: %d\nremoteBurstDuration: %d\nlocalGapDensity: %d\n"
-			"remoteGapDensity: %d\nlocalGapDuration: %d\nremoteGapDuration: %d\n"
-			"localJbRate: %d\nremoteJbRate: %d\nlocalJbMax: %d\nremoteJbMax: %d\n"
-			"localJbNominal: %d\nremoteJbNominal: %d\nlocalJbAbsMax: %d\n"
-			"remoteJbAbsMax: %d\ndiscarded: %d\nlost: %d\nrxpkts: %d\ntxpkts: %d\n"
-			"jbAvg: %d\njitter: %d\nuLossRate: %d\nmaxJitter: %d\naverageRoundTripDelay: %d\n"
+	ast_log(LOG_DEBUG, "RTP stats received:\nlocalBurstDensity: %d, remoteBurstDensity: %d, "
+			"localBurstDuration: %d, remoteBurstDuration: %d, localGapDensity: %d, "
+			"remoteGapDensity: %d, localGapDuration: %d, remoteGapDuration: %d, "
+			"localJbRate: %d, remoteJbRate: %d, localJbMax: %d, remoteJbMax: %d, "
+			"localJbNominal: %d remoteJbNominal: %d, localJbAbsMax: %d, "
+			"remoteJbAbsMax: %d, discarded: %d, lost: %d, rxpkts: %d, txpkts: %d, "
+			"jbAvg: %d, jitter: %d, uLossRate: %d, maxJitter: %d, averageRoundTripDelay: %d, "
 			"averageFarEndInterarrivalJitter: %d\n",
 			sub->rtp_stats.localBurstDensity, sub->rtp_stats.remoteBurstDensity, sub->rtp_stats.localBurstDuration,
 			sub->rtp_stats.remoteBurstDuration, sub->rtp_stats.localGapDensity, sub->rtp_stats.remoteGapDensity,
@@ -4734,7 +4732,7 @@ static int brcm_close_connection(struct brcm_subchannel *sub)
 
 
 /* Generate rtp payload, 12 bytes of header and 160 bytes of ulaw payload */
-static void brcm_generate_rtp_packet(struct brcm_subchannel *sub, uint8_t *packet_buf, int type, int marker, int dtmf_timestamp) {
+static void brcm_generate_rtp_packet(struct brcm_subchannel *sub, uint8_t *packet_buf, int type, int marker, int dtmf_timestamp, int seqno) {
 	unsigned short* packet_buf16 = (unsigned short*)packet_buf;
 	unsigned int*   packet_buf32 = (unsigned int*)packet_buf;
 
@@ -4745,8 +4743,7 @@ static void brcm_generate_rtp_packet(struct brcm_subchannel *sub, uint8_t *packe
 	//CSRC count 0
 	packet_buf[1] = type;
 	packet_buf[1] |= marker?0x80:0x00;
-	packet_buf16[1] = htons(sub->sequence_number++); //Add sequence number
-	if (sub->sequence_number > 0xFFFF) sub->sequence_number=0;
+	packet_buf16[1] = htons(seqno); //Add sequence number
 	packet_buf32[1] = htonl(sub->time_stamp);	//Add timestamp
 	sub->time_stamp += sub->period*8;
 	packet_buf32[2] = sub->ssrc;	//Random SSRC
diff --git a/channels/chan_brcm.h b/channels/chan_brcm.h
index e2df705cd934c8943c959048b54f1c17d781a04b..84b5203ee911a6d067708812cdbdd1af6af03a80 100644
--- a/channels/chan_brcm.h
+++ b/channels/chan_brcm.h
@@ -118,7 +118,6 @@ struct brcm_subchannel {
 	enum CALL_DIRECTION call_direction;		// Direction of call for the subchannel : 0 = incoming, 1 = outgoing
 	unsigned int connection_init;	/* State for endpoint id connection initialization */
 	struct ast_frame fr;		/* Frame */
-	unsigned int sequence_number;	/* Endpoint RTP sequence number state */
 	unsigned int time_stamp;	/* Endpoint RTP time stamp state */
 	unsigned int period;		/* Endpoint RTP period */
 	unsigned int ssrc;		/* Endpoint RTP synchronization source */