File tree Expand file tree Collapse file tree
src/api/integrations/channel/meta Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -159,6 +159,26 @@ export class BusinessStartupService extends ChannelStartupService {
159159 return normalized ;
160160 }
161161
162+ private normalizePhoneNumber ( value ?: string ) {
163+ return typeof value === 'string' ? value . replace ( / \D / g, '' ) : '' ;
164+ }
165+
166+ private isCloudApiEchoPayload ( received : any ) {
167+ return Array . isArray ( received ?. message_echoes ) || Array . isArray ( received ?. smb_message_echoes ) ;
168+ }
169+
170+ private isCloudApiFromMe ( message : any , received : any ) {
171+ if ( this . isCloudApiEchoPayload ( received ) ) return true ;
172+
173+ const from = this . normalizePhoneNumber ( message ?. from ) ;
174+ const displayPhone = this . normalizePhoneNumber ( received ?. metadata ?. display_phone_number ) ;
175+ const phoneNumberId = this . normalizePhoneNumber ( received ?. metadata ?. phone_number_id ) ;
176+
177+ if ( ! from ) return false ;
178+
179+ return from === displayPhone || from === phoneNumberId ;
180+ }
181+
162182 private async downloadMediaMessage ( message : any ) {
163183 try {
164184 const id = message [ message . type ] . id ;
@@ -418,7 +438,7 @@ export class BusinessStartupService extends ChannelStartupService {
418438 const key = {
419439 id : message . id ,
420440 remoteJid,
421- fromMe : message . from === received . metadata . phone_number_id ,
441+ fromMe : this . isCloudApiFromMe ( message , received ) ,
422442 } ;
423443
424444 if ( message . type === 'sticker' ) {
You can’t perform that action at this time.
0 commit comments