Count occurance of multiple strings using grep command

How to grep multiple string occurance in input file using single grep command? I have below input file with many IDP, RRBE messages. Out put should have count of each messages.

I have used below command but it is not working
grep -cH "(sent IDP Request)(Recv RRBCSM)" *.txt >>Sigtran_Errorlogs.txt

Inputfile:(below messages present multiple times)
[14:39:10 10/12/2009]:: SStub-->ICC: otId[1218] sent IDP Request
[14:39:10 10/12/2009]:: ICC-->SStub: otId[2015304695] dtId[10] Recv RRBCSM
[14:39:10 10/12/2009]:: ICC-->SStub: otId[2015304695] dtId[10] Recv ACH
[14:39:10 10/12/2009]:: ICC-->SStub: otId[2015304695] dtId[10] Recv CONNECT/CONTINUE Request
[14:39:10 10/12/2009]:: SStub-->ICC: otId[10] dtId[2015304695] sent ERB Answer
[14:39:10 10/12/2009]:: SStub-->ICC: otId[10] dtId[2015304695] sent ERB Disconnect
[14:39:10 10/12/2009]:: SStub-->ICC: otId[10] dtId[2015304695] sent ACR
[14:39:10 10/12/2009]:: SStub-->ICC: otId[10] dtId[2015304695] sent TC_END

Outputfile (Sigtran_Errorlogs.txt) should look like:
150 capMessageLog.txt.log: sent IDP Request
100 capMessageLog.txt.log: Recv RRBCSM

Something like this?

awk '
/sent IDP Request/{i++}
/Recv RRBCSM/{j++}
END{
  print i " capMessageLog.txt.log: sent IDP Request"}
  print j " capMessageLog.txt.log: Recv RRBCSM"
}' file

This method will be effective is i have only 1 input file but I have many input log files. If you send same command using grep for multiple files it will be more useful

Like this?

awk '
/sent IDP Request/{i++}
/Recv RRBCSM/{j++}
END{
  print i " capMessageLog.txt.log: sent IDP Request"}
  print j " capMessageLog.txt.log: Recv RRBCSM"
}' *.txt >> Sigtran_Errorlogs.txt

You can do this or that, but you cannot do the both.

grep -cH "\(sent IDP Request\)\|\(Recv RRBCSM\)"

This will show the count of both matches.
But if you want it in a different count, you have to use more than one grep, i dont believe anyother way is exists with single grep ?

Why do you want it to be achieved in single grep ?!

I was just seaching for similar commond like below which I used for greping numbers. Since here matched string line is not uniq it is not printing total count for matched string in given input file.

grep -H "\[[345]0[0123][0123456789]\]" *.log | sort | uniq -c >>Dia_Errorlogs.txt

Out put file will look like this:
161519 ccr-cca.2009-12-08.11-59-51.799.clientGPRS_PostPaid_LatestV1.log: |M| (avp-code = 268)(flags = 64)] = [5030]
408 ccr-cca.2009-12-08.11-59-51.799.clientGPRS_PostPaid_LatestV1.log: |M| (avp-code = 268)(flags = 64)] = [5031]

I was looking for similar command for string which should not check for uniqueness of line