diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index d6f4a05af0b151da9608f8d8f909d02129793143..f9a70698d5fbebfd2a4b60ddd80ab897acde4232 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -1688,7 +1688,7 @@ static int sip_transfer(struct ast_channel *ast, const char *dest);
 static int sip_fixup(struct ast_channel *oldchan, struct ast_channel *newchan);
 static int sip_senddigit_begin(struct ast_channel *ast, char digit);
 static int sip_senddigit_end(struct ast_channel *ast, char digit, unsigned int duration);
-static char *sip_get_callid(struct ast_channel *chan);
+static const char *sip_get_callid(struct ast_channel *chan);
 
 static int handle_request_do(struct sip_request *req, struct sockaddr_in *sin);
 static int sip_standard_port(struct sip_socket s);
@@ -3259,7 +3259,7 @@ static int sip_sendhtml(struct ast_channel *chan, int subclass, const char *data
 }
 
 /*! \brief Deliver SIP call ID for the call */
-static char *sip_get_callid(struct ast_channel *chan)
+static const char *sip_get_callid(struct ast_channel *chan)
 {
 	struct sip_pvt *p = chan->tech_pvt;
 	if (!p)
diff --git a/include/asterisk/channel.h b/include/asterisk/channel.h
index c1c9cc211d0515233c586e18a57a60e4af858749..da48c51de52218bedcdac17ce70e5bb3ac77161f 100644
--- a/include/asterisk/channel.h
+++ b/include/asterisk/channel.h
@@ -340,7 +340,7 @@ struct ast_channel_tech {
 	int (* set_base_channel)(struct ast_channel *chan, struct ast_channel *base);
 
 	/*! \brief Get the unique identifier for the PVT, i.e. SIP call-ID for SIP */
-	char * (* get_pvt_uniqueid)(struct ast_channel *chan);
+	const char * (* get_pvt_uniqueid)(struct ast_channel *chan);
 };
 
 struct ast_epoll_data;